diff --git a/.gitattributes b/.gitattributes index e701a2b1..6641037e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,4 @@ Cargo.lock linguist-generated=true merge=binary linguist-vendored Cargo.nix linguist-generated=true merge=binary linguist-vendored flake.lock linguist-generated=true merge=binary linguist-vendored +**/*.snap merge=binary linguist-vendored diff --git a/Cargo.lock b/Cargo.lock index 5e54b9da..d3d6085b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "addr2line" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" dependencies = [ "gimli", ] @@ -87,7 +87,7 @@ dependencies = [ "indexmap 1.9.3", "indoc", "insta", - "itertools", + "itertools 0.10.5", "miette 7.2.0", "num-bigint", "ordinal", @@ -110,7 +110,7 @@ dependencies = [ "aiken-project", "crossbeam-channel", "indoc", - "itertools", + "itertools 0.10.5", "lsp-server", "lsp-types", "miette 7.2.0", @@ -141,7 +141,7 @@ dependencies = [ "indexmap 1.9.3", "indoc", "insta", - "itertools", + "itertools 0.10.5", "miette 7.2.0", "notify", "num-bigint", @@ -180,47 +180,48 @@ checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "anstream" -version = "0.6.13" +version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", + "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" [[package]] name = "anstyle-parse" -version = "0.2.3" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" dependencies = [ "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.2" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" dependencies = [ "anstyle", "windows-sys 0.52.0", @@ -258,7 +259,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.60", + "syn 2.0.72", ] [[package]] @@ -289,15 +290,15 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "backtrace" -version = "0.3.71" +version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" dependencies = [ "addr2line", "cc", @@ -379,9 +380,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "block-buffer" @@ -394,9 +395,9 @@ dependencies = [ [[package]] name = "blst" -version = "0.3.11" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c94087b935a822949d3291a9989ad2b2051ea141eda0fd4e478a75f6aa3e604b" +checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" dependencies = [ "cc", "glob", @@ -406,9 +407,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.9.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" +checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" dependencies = [ "memchr", "serde", @@ -416,9 +417,9 @@ dependencies = [ [[package]] name = "built" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41bfbdb21256b87a8b5e80fab81a8eed158178e812fd7ba451907518b2742f16" +checksum = "236e6289eda5a812bc6b53c3b024039382a2895fbbeef2d748b2931546d392c4" dependencies = [ "git2", ] @@ -437,9 +438,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" [[package]] name = "bzip2" @@ -464,13 +465,12 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.95" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b" +checksum = "504bdec147f2cc13c8b57ed9401fd8a147cc66b67ad5cb241394244f2c947549" dependencies = [ "jobserver", "libc", - "once_cell", ] [[package]] @@ -528,9 +528,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.4" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" dependencies = [ "clap_builder", "clap_derive", @@ -538,9 +538,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.2" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" dependencies = [ "anstream", "anstyle", @@ -553,36 +553,36 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.2" +version = "4.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79504325bf38b10165b02e89b4347300f855f273c4cb30c4a3209e6583275e" +checksum = "a8670053e87c316345e384ca1f3eba3006fc6355ed8b8a1140d104e109e3df34" dependencies = [ "clap", ] [[package]] name = "clap_derive" -version = "4.5.4" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.72", ] [[package]] name = "clap_lex" -version = "0.7.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" [[package]] name = "console" @@ -650,18 +650,18 @@ checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] name = "crc32fast" -version = "1.4.0" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ "cfg-if", ] [[package]] name = "crossbeam-channel" -version = "0.5.12" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" dependencies = [ "crossbeam-utils", ] @@ -687,9 +687,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "crossterm" @@ -700,7 +700,7 @@ dependencies = [ "bitflags 1.3.2", "crossterm_winapi", "libc", - "mio", + "mio 0.8.11", "parking_lot", "signal-hook", "signal-hook-mio", @@ -829,9 +829,9 @@ dependencies = [ [[package]] name = "either" -version = "1.11.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "elliptic-curve" @@ -875,9 +875,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ "libc", "windows-sys 0.52.0", @@ -919,9 +919,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.29" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4556222738635b7a3417ae6130d8f52201e45a0c4d1a907f0826383adb5f85e7" +checksum = "7f211bbe8e69bbd0cfdea405084f128ae8b4aaa6b0b522fc8f2b009084797920" dependencies = [ "crc32fast", "miniz_oxide", @@ -1032,7 +1032,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.72", ] [[package]] @@ -1078,9 +1078,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", @@ -1089,17 +1089,17 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" [[package]] name = "git2" -version = "0.18.3" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "232e6a7bfe35766bf715e55a88b39a700596c0ccfd88cd3680b4cdb40d66ef70" +checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "libc", "libgit2-sys", "log", @@ -1148,7 +1148,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 2.2.6", + "indexmap 2.3.0", "slab", "tokio", "tokio-util", @@ -1253,9 +1253,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.8.0" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" [[package]] name = "httpdate" @@ -1274,9 +1274,9 @@ dependencies = [ [[package]] name = "hyper" -version = "0.14.28" +version = "0.14.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" dependencies = [ "bytes", "futures-channel", @@ -1347,9 +1347,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" dependencies = [ "equivalent", "hashbrown 0.14.5", @@ -1408,9 +1408,9 @@ dependencies = [ [[package]] name = "insta" -version = "1.38.0" +version = "1.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eab73f58e59ca6526037208f0e98851159ec1633cf17b6cd2e1f2c3fd5d53cc" +checksum = "810ae6042d48e2c9e9215043563a58a80b877bc863228a74cf10c49d4620a6f5" dependencies = [ "console", "lazy_static", @@ -1433,6 +1433,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + [[package]] name = "itertools" version = "0.10.5" @@ -1442,6 +1448,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.11" @@ -1450,9 +1465,9 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jobserver" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" dependencies = [ "libc", ] @@ -1480,15 +1495,6 @@ dependencies = [ "signature", ] -[[package]] -name = "keccak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" -dependencies = [ - "cpufeatures", -] - [[package]] name = "kqueue" version = "1.0.8" @@ -1511,21 +1517,21 @@ dependencies = [ [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.153" +version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "libgit2-sys" -version = "0.16.2+1.7.2" +version = "0.17.0+1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8" +checksum = "10472326a8a6477c3c20a64547b0059e4b0d086869eee31e6d7da728a8eb7224" dependencies = [ "cc", "libc", @@ -1545,15 +1551,15 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "libc", ] [[package]] name = "libz-sys" -version = "1.1.16" +version = "1.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9" +checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e" dependencies = [ "cc", "libc", @@ -1569,9 +1575,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "lock_api" @@ -1585,9 +1591,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.21" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "lsp-server" @@ -1616,9 +1622,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.2" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "miette" @@ -1660,7 +1666,7 @@ checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.72", ] [[package]] @@ -1671,7 +1677,7 @@ checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.72", ] [[package]] @@ -1682,9 +1688,9 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "mime_guess" -version = "2.0.4" +version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" dependencies = [ "mime", "unicase", @@ -1719,9 +1725,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ "adler", ] @@ -1739,12 +1745,23 @@ dependencies = [ ] [[package]] -name = "native-tls" -version = "0.2.11" +name = "mio" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" +dependencies = [ + "hermit-abi 0.3.9", + "libc", + "wasi", + "windows-sys 0.52.0", +] + +[[package]] +name = "native-tls" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" dependencies = [ - "lazy_static", "libc", "log", "openssl", @@ -1781,7 +1798,7 @@ version = "6.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "crossbeam-channel", "filetime", "fsevent-sys", @@ -1789,18 +1806,17 @@ dependencies = [ "kqueue", "libc", "log", - "mio", + "mio 0.8.11", "walkdir", "windows-sys 0.48.0", ] [[package]] name = "num-bigint" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ - "autocfg", "num-integer", "num-traits", ] @@ -1822,9 +1838,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", "libm", @@ -1842,9 +1858,9 @@ dependencies = [ [[package]] name = "object" -version = "0.32.2" +version = "0.36.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" dependencies = [ "memchr", ] @@ -1857,11 +1873,11 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "openssl" -version = "0.10.64" +version = "0.10.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "cfg-if", "foreign-types", "libc", @@ -1878,7 +1894,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.72", ] [[package]] @@ -1889,9 +1905,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.102" +version = "0.9.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" dependencies = [ "cc", "libc", @@ -1925,25 +1941,23 @@ checksum = "caff54706df99d2a78a5a4e3455ff45448d81ef1bb63c22cd14052ca0e993a3f" [[package]] name = "pallas-addresses" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a186bac65200a9b720326082b2bd64fe2f0f9284e8709c70fa16d9f9aeed89e6" +version = "0.29.0" +source = "git+https://github.com/KtorZ/pallas.git?rev=454b3bcf32cdc238aba65e4c3e4656a352480ec1#454b3bcf32cdc238aba65e4c3e4656a352480ec1" dependencies = [ "base58", "bech32", "crc", + "cryptoxide", "hex", "pallas-codec", "pallas-crypto", - "sha3", "thiserror", ] [[package]] name = "pallas-codec" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4530d1a558070d6b46bfd68cfd77f3a7b2cff3b4426b32ad9f02ff270387b248" +version = "0.29.0" +source = "git+https://github.com/KtorZ/pallas.git?rev=454b3bcf32cdc238aba65e4c3e4656a352480ec1#454b3bcf32cdc238aba65e4c3e4656a352480ec1" dependencies = [ "hex", "minicbor", @@ -1954,9 +1968,8 @@ dependencies = [ [[package]] name = "pallas-crypto" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12dd0ccf9909e47c1273000eb11945b3d909356c0f0fd2a380f49ced849d2c77" +version = "0.29.0" +source = "git+https://github.com/KtorZ/pallas.git?rev=454b3bcf32cdc238aba65e4c3e4656a352480ec1#454b3bcf32cdc238aba65e4c3e4656a352480ec1" dependencies = [ "cryptoxide", "hex", @@ -1968,9 +1981,8 @@ dependencies = [ [[package]] name = "pallas-primitives" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb19819e37c14cafa0a5bba51cd2966b07b72399a8096910f48e34d49c05adf1" +version = "0.29.0" +source = "git+https://github.com/KtorZ/pallas.git?rev=454b3bcf32cdc238aba65e4c3e4656a352480ec1#454b3bcf32cdc238aba65e4c3e4656a352480ec1" dependencies = [ "base58", "bech32", @@ -1984,11 +1996,11 @@ dependencies = [ [[package]] name = "pallas-traverse" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebf62cdadb4d9d15b390fd540fc639fcbeaf3875a6bee490c104d305426cb262" +version = "0.29.0" +source = "git+https://github.com/KtorZ/pallas.git?rev=454b3bcf32cdc238aba65e4c3e4656a352480ec1#454b3bcf32cdc238aba65e4c3e4656a352480ec1" dependencies = [ "hex", + "itertools 0.13.0", "pallas-addresses", "pallas-codec", "pallas-crypto", @@ -2000,9 +2012,9 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", "parking_lot_core", @@ -2016,9 +2028,9 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.1", + "redox_syscall 0.5.3", "smallvec", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -2044,7 +2056,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31f2f4539bffe53fc4b4da301df49d114b845b077bd5727b7fe2bd9d8df2ae68" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", ] [[package]] @@ -2061,9 +2073,9 @@ dependencies = [ [[package]] name = "peg" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a625d12ad770914cbf7eff6f9314c3ef803bfe364a1b20bc36ddf56673e71e5" +checksum = "295283b02df346d1ef66052a757869b2876ac29a6bb0ac3f5f7cd44aebe40e8f" dependencies = [ "peg-macros", "peg-runtime", @@ -2071,9 +2083,9 @@ dependencies = [ [[package]] name = "peg-macros" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f241d42067ed3ab6a4fece1db720838e1418f36d868585a27931f95d6bc03582" +checksum = "bdad6a1d9cf116a059582ce415d5f5566aabcd4008646779dab7fdc2a9a9d426" dependencies = [ "peg-runtime", "proc-macro2", @@ -2123,7 +2135,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.72", ] [[package]] @@ -2139,12 +2151,12 @@ dependencies = [ [[package]] name = "petgraph" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.2.6", + "indexmap 2.3.0", ] [[package]] @@ -2183,9 +2195,12 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] [[package]] name = "pretty" @@ -2211,22 +2226,22 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.81" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] [[package]] name = "proptest" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" +checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.5.0", + "bitflags 2.6.0", "lazy_static", "num-traits", "rand", @@ -2253,7 +2268,7 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "memchr", "unicase", ] @@ -2343,11 +2358,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.1" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", ] [[package]] @@ -2363,9 +2378,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.4" +version = "1.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" dependencies = [ "aho-corasick", "memchr", @@ -2375,9 +2390,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" dependencies = [ "aho-corasick", "memchr", @@ -2386,9 +2401,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] name = "reqwest" @@ -2442,9 +2457,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustix" @@ -2452,7 +2467,7 @@ version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "errno", "libc", "linux-raw-sys", @@ -2470,9 +2485,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.15" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" [[package]] name = "rusty-fork" @@ -2488,9 +2503,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "same-file" @@ -2550,11 +2565,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.10.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "core-foundation", "core-foundation-sys", "libc", @@ -2563,9 +2578,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.10.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" dependencies = [ "core-foundation-sys", "libc", @@ -2582,32 +2597,33 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.199" +version = "1.0.205" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c9f6e76df036c77cd94996771fb40db98187f096dd0b9af39c6c6e452ba966a" +checksum = "e33aedb1a7135da52b7c21791455563facbbcc43d0f0f66165b42c21b3dfb150" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.199" +version = "1.0.205" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11bd257a6541e141e42ca6d24ae26f7714887b47e89aa739099104c7e4d3b7fc" +checksum = "692d6f5ac90220161d6774db30c662202721e64aed9058d2c394f451261420c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.72", ] [[package]] name = "serde_json" -version = "1.0.116" +version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" +checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.3.0", "itoa", + "memchr", "ryu", "serde", ] @@ -2620,14 +2636,14 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.72", ] [[package]] name = "serde_spanned" -version = "0.6.5" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" +checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" dependencies = [ "serde", ] @@ -2666,16 +2682,6 @@ dependencies = [ "digest", ] -[[package]] -name = "sha3" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" -dependencies = [ - "digest", - "keccak", -] - [[package]] name = "signal-hook" version = "0.3.17" @@ -2688,12 +2694,12 @@ dependencies = [ [[package]] name = "signal-hook-mio" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" dependencies = [ "libc", - "mio", + "mio 0.8.11", "signal-hook", ] @@ -2718,9 +2724,9 @@ dependencies = [ [[package]] name = "similar" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640" +checksum = "1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e" [[package]] name = "slab" @@ -2745,9 +2751,9 @@ checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" [[package]] name = "socket2" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", "windows-sys 0.52.0", @@ -2812,9 +2818,9 @@ dependencies = [ [[package]] name = "subtle" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "supports-color" @@ -2860,9 +2866,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.60" +version = "2.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3" +checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" dependencies = [ "proc-macro2", "quote", @@ -2898,14 +2904,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.10.1" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" dependencies = [ "cfg-if", "fastrand", + "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2931,22 +2938,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.59" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.59" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.72", ] [[package]] @@ -2979,9 +2986,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" dependencies = [ "tinyvec_macros", ] @@ -2994,32 +3001,31 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.37.0" +version = "1.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" +checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" dependencies = [ "backtrace", "bytes", "libc", - "mio", - "num_cpus", + "mio 1.0.1", "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "tokio-macros" -version = "2.2.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.72", ] [[package]] @@ -3034,16 +3040,15 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" dependencies = [ "bytes", "futures-core", "futures-sink", "pin-project-lite", "tokio", - "tracing", ] [[package]] @@ -3060,9 +3065,9 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.5" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" dependencies = [ "serde", ] @@ -3073,7 +3078,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.3.0", "serde", "serde_spanned", "toml_datetime", @@ -3105,7 +3110,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.72", ] [[package]] @@ -3191,9 +3196,9 @@ checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" [[package]] name = "unicode-width" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" +checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" [[package]] name = "uplc" @@ -3204,7 +3209,8 @@ dependencies = [ "hex", "indexmap 1.9.3", "indoc", - "itertools", + "insta", + "itertools 0.10.5", "k256", "miette 5.10.0", "num-bigint", @@ -3230,9 +3236,9 @@ dependencies = [ [[package]] name = "url" -version = "2.5.0" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", "idna", @@ -3248,9 +3254,9 @@ checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" [[package]] name = "utf8parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "vcpkg" @@ -3260,15 +3266,15 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "vec1" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb60dcfffc189bfd4e2a81333c268619fee9db53da71bce2bcbd8e129c56936" +checksum = "eab68b56840f69efb0fefbe3ab6661499217ffdc58e2eef7c3f6f69835386322" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "vte" @@ -3283,9 +3289,9 @@ dependencies = [ [[package]] name = "vte_generate_state_changes" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff" +checksum = "2e369bee1b05d510a7b4ed645f5faa90619e05437111783ea5848f28d97d3c2e" dependencies = [ "proc-macro2", "quote", @@ -3346,7 +3352,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.72", "wasm-bindgen-shared", ] @@ -3380,7 +3386,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.72", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3419,11 +3425,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3447,7 +3453,16 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", ] [[package]] @@ -3467,18 +3482,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -3489,9 +3504,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -3501,9 +3516,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -3513,15 +3528,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -3531,9 +3546,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -3543,9 +3558,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -3555,9 +3570,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -3567,9 +3582,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" @@ -3604,29 +3619,30 @@ checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" [[package]] name = "zerocopy" -version = "0.7.32" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ + "byteorder", "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.32" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.72", ] [[package]] name = "zeroize" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" dependencies = [ "zeroize_derive", ] @@ -3639,7 +3655,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.72", ] [[package]] @@ -3683,9 +3699,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.10+zstd.1.5.6" +version = "2.0.13+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index a20b5ec2..a95f3ee8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,11 +49,11 @@ x86_64-unknown-linux-gnu = "ubuntu-22.04" walkdir = "2.3.2" insta = { version = "1.30.0", features = ["yaml", "json", "redactions"] } miette = { version = "7.2.0", features = ["fancy"] } -pallas-addresses = "0.22.0" -pallas-codec = { version = "0.22.0", features = ["num-bigint"] } -pallas-crypto = "0.22.0" -pallas-primitives = "0.22.0" -pallas-traverse = "0.22.0" +pallas-addresses = { git = "https://github.com/KtorZ/pallas.git", rev = "454b3bcf32cdc238aba65e4c3e4656a352480ec1" } +pallas-codec = { git = "https://github.com/KtorZ/pallas.git", rev = "454b3bcf32cdc238aba65e4c3e4656a352480ec1", features = ["num-bigint"] } +pallas-crypto = { git = "https://github.com/KtorZ/pallas.git", rev = "454b3bcf32cdc238aba65e4c3e4656a352480ec1" } +pallas-primitives = { git = "https://github.com/KtorZ/pallas.git", rev = "454b3bcf32cdc238aba65e4c3e4656a352480ec1" } +pallas-traverse = { git = "https://github.com/KtorZ/pallas.git", rev = "454b3bcf32cdc238aba65e4c3e4656a352480ec1" } [profile.dev.package.insta] opt-level = 3 diff --git a/crates/aiken-lang/src/format.rs b/crates/aiken-lang/src/format.rs index 8d0f09b9..0952e099 100644 --- a/crates/aiken-lang/src/format.rs +++ b/crates/aiken-lang/src/format.rs @@ -998,14 +998,12 @@ impl<'comments> Formatter<'comments> { wrap_args(elems.iter().map(|e| (self.wrap_expr(e), false))).group() } - UntypedExpr::Pair { fst, snd, .. } => "Pair" - .to_doc() - .append("(") - .append(self.expr(fst, false)) - .append(break_(",", ", ")) - .append(self.expr(snd, false)) - .append(")") - .group(), + UntypedExpr::Pair { fst, snd, .. } => { + let elems = [fst, snd]; + "Pair" + .to_doc() + .append(wrap_args(elems.iter().map(|e| (self.wrap_expr(e), false))).group()) + } UntypedExpr::TupleIndex { index, tuple, .. } => { let suffix = Ordinal(*index + 1).suffix().to_doc(); diff --git a/crates/aiken-lang/src/parser/pattern/constructor.rs b/crates/aiken-lang/src/parser/pattern/constructor.rs index 46256286..a0336fd2 100644 --- a/crates/aiken-lang/src/parser/pattern/constructor.rs +++ b/crates/aiken-lang/src/parser/pattern/constructor.rs @@ -6,10 +6,10 @@ use crate::{ }; pub fn parser( - expression: Recursive<'_, Token, UntypedPattern, ParseError>, + pattern: Recursive<'_, Token, UntypedPattern, ParseError>, ) -> impl Parser + '_ { select! {Token::UpName { name } => name} - .then(args(expression)) + .then(args(pattern)) .map_with_span( |(name, (arguments, spread_location, is_record)), location| { UntypedPattern::Constructor { @@ -27,13 +27,13 @@ pub fn parser( } pub(crate) fn args( - expression: Recursive<'_, Token, UntypedPattern, ParseError>, + pattern: Recursive<'_, Token, UntypedPattern, ParseError>, ) -> impl Parser>, Option, bool), Error = ParseError> + '_ { let record_constructor_pattern_arg_parser = choice(( select! {Token::Name {name} => name} .then_ignore(just(Token::Colon)) - .then(expression.clone()) + .then(pattern.clone()) .map_with_span(|(name, pattern), span| CallArg { location: span, label: Some(name), @@ -59,7 +59,7 @@ pub(crate) fn args( ) .delimited_by(just(Token::LeftBrace), just(Token::RightBrace)); - let tuple_constructor_pattern_arg_parser = expression + let tuple_constructor_pattern_arg_parser = pattern .clone() .map(|pattern| CallArg { location: pattern.location(), diff --git a/crates/aiken-lang/src/tests/format.rs b/crates/aiken-lang/src/tests/format.rs index 9cde42dc..d2015390 100644 --- a/crates/aiken-lang/src/tests/format.rs +++ b/crates/aiken-lang/src/tests/format.rs @@ -1116,3 +1116,27 @@ fn format_long_imports() { "# ); } + +#[test] +fn format_long_pair() { + assert_format!( + r#" + test foo() { + expect(Some([ + Pair(GovernanceActionId { transaction: only7s, proposal_procedure: 2 }, + Abstain), + ])) == whatever + + expect(Some([ + Foo(GovernanceActionId { transaction: only7s, proposal_procedure: 2 }, + Abstain), + ])) == whatever + + expect(Some([ + (GovernanceActionId { transaction: only7s, proposal_procedure: 2 }, + Abstain), + ])) == whatever + } + "# + ); +} diff --git a/crates/aiken-lang/src/tests/snapshots/format_long_pair.snap b/crates/aiken-lang/src/tests/snapshots/format_long_pair.snap new file mode 100644 index 00000000..165e7c00 --- /dev/null +++ b/crates/aiken-lang/src/tests/snapshots/format_long_pair.snap @@ -0,0 +1,35 @@ +--- +source: crates/aiken-lang/src/tests/format.rs +description: "Code:\n\ntest foo() {\n expect(Some([\n Pair(GovernanceActionId { transaction: only7s, proposal_procedure: 2 },\n Abstain),\n ])) == whatever\n\n expect(Some([\n Foo(GovernanceActionId { transaction: only7s, proposal_procedure: 2 },\n Abstain),\n ])) == whatever\n\n expect(Some([\n (GovernanceActionId { transaction: only7s, proposal_procedure: 2 },\n Abstain),\n ])) == whatever\n}\n" +--- +test foo() { + expect + Some( + [ + Pair( + GovernanceActionId { transaction: only7s, proposal_procedure: 2 }, + Abstain, + ), + ], + ) == whatever + + expect + Some( + [ + Foo( + GovernanceActionId { transaction: only7s, proposal_procedure: 2 }, + Abstain, + ), + ], + ) == whatever + + expect + Some( + [ + ( + GovernanceActionId { transaction: only7s, proposal_procedure: 2 }, + Abstain, + ), + ], + ) == whatever +} diff --git a/crates/aiken-project/src/blueprint/mod.rs b/crates/aiken-project/src/blueprint/mod.rs index 9ff3daff..86369656 100644 --- a/crates/aiken-project/src/blueprint/mod.rs +++ b/crates/aiken-project/src/blueprint/mod.rs @@ -5,14 +5,13 @@ pub mod parameter; pub mod schema; pub mod validator; -pub use error::Error; - use crate::{ config::{self, Config, PlutusVersion}, module::CheckedModules, }; use aiken_lang::gen_uplc::CodeGenerator; use definitions::Definitions; +pub use error::Error; use schema::{Annotated, Schema}; use std::fmt::Debug; use validator::Validator; @@ -70,7 +69,7 @@ impl Blueprint { let validators: Result, Error> = modules .validators() .flat_map(|(validator, def)| { - Validator::from_checked_module(modules, generator, validator, def) + Validator::from_checked_module(modules, generator, validator, def, &config.plutus) .into_iter() .map(|result| { result.map(|mut schema| { diff --git a/crates/aiken-project/src/blueprint/validator.rs b/crates/aiken-project/src/blueprint/validator.rs index 292728d5..61db8c5f 100644 --- a/crates/aiken-project/src/blueprint/validator.rs +++ b/crates/aiken-project/src/blueprint/validator.rs @@ -9,13 +9,14 @@ use crate::module::{CheckedModule, CheckedModules}; use aiken_lang::{ ast::{Annotation, TypedArg, TypedFunction, TypedValidator}, gen_uplc::CodeGenerator, + plutus_version::PlutusVersion, tipo::Type, }; use miette::NamedSource; use serde; use std::borrow::Borrow; use uplc::{ - ast::{Constant, DeBruijn, Program}, + ast::{Constant, SerializableProgram}, PlutusData, }; @@ -36,7 +37,7 @@ pub struct Validator { pub parameters: Vec, #[serde(flatten)] - pub program: Program, + pub program: SerializableProgram, #[serde(skip_serializing_if = "Definitions::is_empty")] #[serde(default)] @@ -49,6 +50,7 @@ impl Validator { generator: &mut CodeGenerator, module: &CheckedModule, def: &TypedValidator, + plutus_version: &PlutusVersion, ) -> Vec> { let is_multi_validator = def.other_fun.is_some(); @@ -62,6 +64,7 @@ impl Validator { &def.fun, is_multi_validator, &mut program, + plutus_version, )]; if let Some(ref other_func) = def.other_fun { @@ -73,12 +76,14 @@ impl Validator { other_func, is_multi_validator, &mut program, + plutus_version, )); } validators } + #[allow(clippy::too_many_arguments)] fn create_validator_blueprint( generator: &mut CodeGenerator, modules: &CheckedModules, @@ -87,6 +92,7 @@ impl Validator { func: &TypedFunction, is_multi_validator: bool, program: &mut MemoProgram, + plutus_version: &PlutusVersion, ) -> Result { let mut args = func.arguments.iter().rev(); let (_, redeemer, datum) = (args.next(), args.next().unwrap(), args.next()); @@ -168,7 +174,11 @@ impl Validator { parameters, datum, redeemer, - program: program.get(generator, def, &module.name), + program: match plutus_version { + PlutusVersion::V1 => SerializableProgram::PlutusV1Program, + PlutusVersion::V2 => SerializableProgram::PlutusV2Program, + PlutusVersion::V3 => SerializableProgram::PlutusV3Program, + }(program.get(generator, def, &module.name)), definitions, }) } @@ -208,7 +218,7 @@ impl Validator { Some((head, tail)) => { head.validate(definitions, &Constant::Data(arg.clone()))?; Ok(Self { - program: self.program.apply_data(arg.clone()), + program: self.program.map(|program| program.apply_data(arg.clone())), parameters: tail.to_vec(), ..self }) @@ -284,7 +294,7 @@ mod tests { .next() .expect("source code did no yield any validator"); - let validators = Validator::from_checked_module(&modules, &mut generator, validator, def); + let validators = Validator::from_checked_module(&modules, &mut generator, validator, def, &PlutusVersion::default()); if validators.len() > 1 { panic!("Multi-validator given to test bench. Don't do that.") diff --git a/crates/aiken-project/src/export.rs b/crates/aiken-project/src/export.rs index f364348d..99d3b3f2 100644 --- a/crates/aiken-project/src/export.rs +++ b/crates/aiken-project/src/export.rs @@ -1,7 +1,3 @@ -use aiken_lang::{ast::TypedFunction, gen_uplc::CodeGenerator}; -use miette::NamedSource; -use uplc::ast::{DeBruijn, Program}; - use crate::{ blueprint::{ self, @@ -11,6 +7,9 @@ use crate::{ }, module::{CheckedModule, CheckedModules}, }; +use aiken_lang::{ast::TypedFunction, gen_uplc::CodeGenerator, plutus_version::PlutusVersion}; +use miette::NamedSource; +use uplc::ast::SerializableProgram; #[derive(Debug, PartialEq, Clone, serde::Serialize, serde::Deserialize)] pub struct Export { @@ -24,7 +23,7 @@ pub struct Export { pub parameters: Vec, #[serde(flatten)] - pub program: Program, + pub program: SerializableProgram, #[serde(skip_serializing_if = "Definitions::is_empty")] #[serde(default)] @@ -37,6 +36,7 @@ impl Export { module: &CheckedModule, generator: &mut CodeGenerator, modules: &CheckedModules, + plutus_version: &PlutusVersion, ) -> Result { let mut definitions = Definitions::new(); @@ -64,10 +64,16 @@ impl Export { }) .collect::>()?; - let program = generator - .generate_raw(&func.body, &func.arguments, &module.name) - .to_debruijn() - .unwrap(); + let program = match plutus_version { + PlutusVersion::V1 => SerializableProgram::PlutusV1Program, + PlutusVersion::V2 => SerializableProgram::PlutusV2Program, + PlutusVersion::V3 => SerializableProgram::PlutusV3Program, + }( + generator + .generate_raw(&func.body, &func.arguments, &module.name) + .to_debruijn() + .unwrap(), + ); Ok(Export { name: format!("{}.{}", &module.name, &func.name), @@ -86,6 +92,7 @@ mod tests { use aiken_lang::{ self, ast::{TraceLevel, Tracing}, + plutus_version::PlutusVersion, }; macro_rules! assert_export { @@ -103,7 +110,7 @@ mod tests { .next() .expect("source code did no yield any exports"); - let export = Export::from_function(func, module, &mut generator, &modules); + let export = Export::from_function(func, module, &mut generator, &modules, &PlutusVersion::default()); match export { Err(e) => insta::with_settings!({ diff --git a/crates/aiken-project/src/lib.rs b/crates/aiken-project/src/lib.rs index 83b073dc..2c2df06d 100644 --- a/crates/aiken-project/src/lib.rs +++ b/crates/aiken-project/src/lib.rs @@ -40,7 +40,6 @@ use aiken_lang::{ format::{Formatter, MAX_COLUMNS}, gen_uplc::CodeGenerator, line_numbers::LineNumbers, - plutus_version::PlutusVersion, tipo::{Type, TypeInfo}, IdGenerator, }; @@ -50,8 +49,7 @@ use miette::NamedSource; use options::{CodeGenMode, Options}; use package_name::PackageName; use pallas_addresses::{Address, Network, ShelleyAddress, ShelleyDelegationPart, StakePayload}; -use pallas_primitives::conway::{self as cardano, PolicyId}; -use pallas_traverse::ComputeHash; +use pallas_primitives::conway::PolicyId; use std::{ collections::{BTreeSet, HashMap}, fs::{self, File}, @@ -298,7 +296,7 @@ where let path = dir.clone().join(format!("{}.uplc", validator.title)); let program = &validator.program; - let program: Program = program.try_into().unwrap(); + let program: Program = program.inner().try_into().unwrap(); fs::write(&path, program.to_pretty()).map_err(|error| Error::FileIo { error, path })?; } @@ -490,7 +488,7 @@ where Network::Testnet }; - Ok(validator.program.address( + Ok(validator.program.inner().address( network, delegation_part.to_owned(), &self.config.plutus.into(), @@ -520,15 +518,7 @@ where if n > 0 { Err(blueprint::error::Error::ParameterizedValidator { n }.into()) } else { - let cbor = validator.program.to_cbor().unwrap(); - - let validator_hash = match self.config.plutus { - PlutusVersion::V1 => cardano::PlutusV1Script(cbor.into()).compute_hash(), - PlutusVersion::V2 => cardano::PlutusV2Script(cbor.into()).compute_hash(), - PlutusVersion::V3 => cardano::PlutusV3Script(cbor.into()).compute_hash(), - }; - - Ok(validator_hash) + Ok(validator.program.compiled_code_and_hash().1) } }) } @@ -552,7 +542,13 @@ where .map(|(checked_module, func)| { let mut generator = self.new_generator(tracing); - Export::from_function(func, checked_module, &mut generator, &self.checked_modules) + Export::from_function( + func, + checked_module, + &mut generator, + &self.checked_modules, + &self.config.plutus, + ) }) .transpose()? .ok_or_else(|| Error::ExportNotFound { diff --git a/crates/aiken/src/cmd/blueprint/convert.rs b/crates/aiken/src/cmd/blueprint/convert.rs index 60e70f80..f5512b3a 100644 --- a/crates/aiken/src/cmd/blueprint/convert.rs +++ b/crates/aiken/src/cmd/blueprint/convert.rs @@ -83,7 +83,7 @@ pub fn exec( let result = blueprint.with_validator(title, when_too_many, when_missing, |validator| match to { Format::CardanoCli => { - let cbor_bytes = validator.program.to_cbor().unwrap(); + let cbor_bytes = validator.program.inner().to_cbor().unwrap(); let mut double_cbor_bytes = Vec::new(); diff --git a/crates/aiken/src/cmd/tx/simulate.rs b/crates/aiken/src/cmd/tx/simulate.rs index 0b11ab4d..c0760ec9 100644 --- a/crates/aiken/src/cmd/tx/simulate.rs +++ b/crates/aiken/src/cmd/tx/simulate.rs @@ -1,7 +1,7 @@ use miette::IntoDiagnostic; use owo_colors::{OwoColorize, Stream::Stderr}; use pallas_primitives::{ - babbage::{Redeemer, TransactionInput, TransactionOutput}, + conway::{Redeemer, TransactionInput, TransactionOutput}, Fragment, }; use pallas_traverse::{Era, MultiEraTx}; @@ -9,7 +9,7 @@ use std::{fmt, fs, path::PathBuf, process}; use uplc::{ machine::cost_model::ExBudget, tx::{ - self, + self, redeemer_tag_to_string, script_context::{ResolvedInput, SlotConfig}, }, }; @@ -79,7 +79,7 @@ pub fn exec( ) }; - let tx = MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes).into_diagnostic()?; + let tx = MultiEraTx::decode_for_era(Era::Conway, &tx_bytes).into_diagnostic()?; eprintln!( "{} {}", @@ -101,7 +101,7 @@ pub fn exec( }) .collect(); - if let Some(tx_babbage) = tx.as_babbage() { + if let Some(tx_conway) = tx.as_conway() { let slot_config = SlotConfig { zero_time, zero_slot, @@ -110,17 +110,17 @@ pub fn exec( let with_redeemer = |redeemer: &Redeemer| { eprintln!( - "{} {:?} → {}", - " Redeemer" + "{} {}[{}]", + " Evaluating" .if_supports_color(Stderr, |s| s.purple()) .if_supports_color(Stderr, |s| s.bold()), - redeemer.tag, + redeemer_tag_to_string(&redeemer.tag), redeemer.index ) }; let result = tx::eval_phase_two( - tx_babbage, + tx_conway, &resolved_inputs, None, None, @@ -149,7 +149,14 @@ pub fn exec( ); } Err(err) => { - eprintln!("{}", display_tx_error(&err)); + eprintln!( + "{} {}", + " Error" + .if_supports_color(Stderr, |s| s.red()) + .if_supports_color(Stderr, |s| s.bold()), + err.red() + ); + process::exit(1); } } @@ -157,46 +164,3 @@ pub fn exec( Ok(()) } - -fn display_tx_error(err: &tx::error::Error) -> String { - let mut msg = format!( - "{} {}", - " Error" - .if_supports_color(Stderr, |s| s.red()) - .if_supports_color(Stderr, |s| s.bold()), - err.red() - ); - match err { - tx::error::Error::RedeemerError { err, .. } => { - msg.push_str(&format!( - "\n{}", - display_tx_error(err) - .lines() - .skip(1) - .collect::>() - .join("\n"), - )); - msg - } - tx::error::Error::Machine(_, _, traces) => { - msg.push_str( - traces - .iter() - .map(|s| { - format!( - "\n{} {}", - " Trace" - .if_supports_color(Stderr, |s| s.yellow()) - .if_supports_color(Stderr, |s| s.bold()), - s.if_supports_color(Stderr, |s| s.yellow()) - ) - }) - .collect::>() - .join("") - .as_str(), - ); - msg - } - _ => msg, - } -} diff --git a/crates/uplc/Cargo.toml b/crates/uplc/Cargo.toml index fac61ae4..71960d38 100644 --- a/crates/uplc/Cargo.toml +++ b/crates/uplc/Cargo.toml @@ -42,5 +42,6 @@ k256 = { version = "0.13.0" } [dev-dependencies] hex = "0.4.3" indoc = "2.0.1" +insta.workspace = true pretty_assertions = "1.3.0" walkdir.workspace = true diff --git a/crates/uplc/src/ast.rs b/crates/uplc/src/ast.rs index c5db115a..21832ebc 100644 --- a/crates/uplc/src/ast.rs +++ b/crates/uplc/src/ast.rs @@ -111,38 +111,99 @@ where } } -impl Serialize for Program { +#[derive(Debug, Clone, PartialEq)] +pub enum SerializableProgram { + PlutusV1Program(Program), + PlutusV2Program(Program), + PlutusV3Program(Program), +} + +impl SerializableProgram { + pub fn inner(&self) -> &Program { + use SerializableProgram::*; + + match self { + PlutusV1Program(program) => program, + PlutusV2Program(program) => program, + PlutusV3Program(program) => program, + } + } + + pub fn map(self, f: F) -> Self + where + F: FnOnce(Program) -> Program, + { + use SerializableProgram::*; + + match self { + PlutusV1Program(program) => PlutusV1Program(f(program)), + PlutusV2Program(program) => PlutusV2Program(f(program)), + PlutusV3Program(program) => PlutusV3Program(f(program)), + } + } + + pub fn compiled_code_and_hash(&self) -> (String, pallas_crypto::hash::Hash<28>) { + use SerializableProgram::*; + + match self { + PlutusV1Program(pgrm) => { + let cbor = pgrm.to_cbor().unwrap(); + let compiled_code = hex::encode(&cbor); + let hash = conway::PlutusV1Script(cbor.into()).compute_hash(); + (compiled_code, hash) + } + + PlutusV2Program(pgrm) => { + let cbor = pgrm.to_cbor().unwrap(); + let compiled_code = hex::encode(&cbor); + let hash = conway::PlutusV2Script(cbor.into()).compute_hash(); + (compiled_code, hash) + } + + PlutusV3Program(pgrm) => { + let cbor = pgrm.to_cbor().unwrap(); + let compiled_code = hex::encode(&cbor); + let hash = conway::PlutusV3Script(cbor.into()).compute_hash(); + (compiled_code, hash) + } + } + } +} + +impl Serialize for SerializableProgram { fn serialize(&self, serializer: S) -> Result { - let cbor = self.to_cbor().unwrap(); + let (compiled_code, hash) = self.compiled_code_and_hash(); let mut s = serializer.serialize_struct("Program", 2)?; - s.serialize_field("compiledCode", &hex::encode(&cbor))?; - s.serialize_field("hash", &conway::PlutusV2Script(cbor.into()).compute_hash())?; + s.serialize_field("compiledCode", &compiled_code)?; + s.serialize_field("hash", &hash)?; s.end() } } -impl<'a> Deserialize<'a> for Program { +impl<'a> Deserialize<'a> for SerializableProgram { fn deserialize>(deserializer: D) -> Result { #[derive(serde::Deserialize)] #[serde(field_identifier, rename_all = "camelCase")] enum Fields { CompiledCode, + Hash, } struct ProgramVisitor; impl<'a> Visitor<'a> for ProgramVisitor { - type Value = Program; + type Value = SerializableProgram; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { - formatter.write_str("Program") + formatter.write_str("validator") } - fn visit_map(self, mut map: V) -> Result, V::Error> + fn visit_map(self, mut map: V) -> Result where V: MapAccess<'a>, { let mut compiled_code: Option = None; + let mut hash: Option = None; while let Some(key) = map.next_key()? { match key { Fields::CompiledCode => { @@ -151,11 +212,20 @@ impl<'a> Deserialize<'a> for Program { } compiled_code = Some(map.next_value()?); } + + Fields::Hash => { + if hash.is_some() { + return Err(de::Error::duplicate_field("hash")); + } + hash = Some(map.next_value()?); + } } } let compiled_code = compiled_code.ok_or_else(|| de::Error::missing_field("compiledCode"))?; + let hash = hash.ok_or_else(|| de::Error::missing_field("hash"))?; + let mut cbor_buffer = Vec::new(); let mut flat_buffer = Vec::new(); @@ -166,10 +236,29 @@ impl<'a> Deserialize<'a> for Program { &"a base16-encoded CBOR-serialized UPLC program", ) }) + .and_then(|program| { + let cbor = || program.to_cbor().unwrap().into(); + + if conway::PlutusV3Script(cbor()).compute_hash().to_string() == hash { + return Ok(SerializableProgram::PlutusV3Program(program)); + } + + if conway::PlutusV2Script(cbor()).compute_hash().to_string() == hash { + return Ok(SerializableProgram::PlutusV2Program(program)); + } + + if conway::PlutusV1Script(cbor()).compute_hash().to_string() == hash { + return Ok(SerializableProgram::PlutusV1Program(program)); + } + + Err(de::Error::custom( + "hash doesn't match any recognisable Plutus version.", + )) + }) } } - const FIELDS: &[&str] = &["compiledCode"]; + const FIELDS: &[&str] = &["compiledCode", "hash"]; deserializer.deserialize_struct("Program", FIELDS, ProgramVisitor) } } @@ -789,9 +878,13 @@ impl Program { impl Program { pub fn eval(&self, initial_budget: ExBudget) -> EvalResult { let program: Program = self.clone().into(); - program.eval(initial_budget) } + + pub fn eval_version(self, initial_budget: ExBudget, version: &Language) -> EvalResult { + let program: Program = self.clone().into(); + program.eval_version(initial_budget, version) + } } impl Term { diff --git a/crates/uplc/src/flat.rs b/crates/uplc/src/flat.rs index e71d2896..78a5e051 100644 --- a/crates/uplc/src/flat.rs +++ b/crates/uplc/src/flat.rs @@ -1,13 +1,3 @@ -use num_bigint::BigInt; -use pallas_codec::flat::{ - de::{self, Decode, Decoder}, - en::{self, Encode, Encoder}, - Flat, -}; -use pallas_primitives::{babbage::PlutusData, Fragment}; - -use std::{collections::VecDeque, fmt::Debug, rc::Rc}; - use crate::{ ast::{ Constant, DeBruijn, FakeNamedDeBruijn, Name, NamedDeBruijn, Program, Term, Type, Unique, @@ -15,6 +5,14 @@ use crate::{ builtins::DefaultFunction, machine::runtime::Compressable, }; +use num_bigint::BigInt; +use pallas_codec::flat::{ + de::{self, Decode, Decoder}, + en::{self, Encode, Encoder}, + Flat, +}; +use pallas_primitives::{conway::PlutusData, Fragment}; +use std::{collections::VecDeque, fmt::Debug, rc::Rc}; const BUILTIN_TAG_WIDTH: u32 = 7; const CONST_TAG_WIDTH: u32 = 4; diff --git a/crates/uplc/src/lib.rs b/crates/uplc/src/lib.rs index 364cd7c4..798d680a 100644 --- a/crates/uplc/src/lib.rs +++ b/crates/uplc/src/lib.rs @@ -16,6 +16,7 @@ pub use pallas_primitives::{ babbage::{PostAlonzoTransactionOutput, TransactionInput, TransactionOutput, Value}, Error, Fragment, }; +pub use tx::redeemer_tag_to_string; pub fn plutus_data(bytes: &[u8]) -> Result { PlutusData::decode_fragment(bytes) diff --git a/crates/uplc/src/machine/cost_model.rs b/crates/uplc/src/machine/cost_model.rs index 2050c997..86eec4d0 100644 --- a/crates/uplc/src/machine/cost_model.rs +++ b/crates/uplc/src/machine/cost_model.rs @@ -1,10 +1,7 @@ -use std::collections::HashMap; - -use pallas_primitives::conway::Language; - -use crate::builtins::DefaultFunction; - use super::Value; +use crate::builtins::DefaultFunction; +use pallas_primitives::conway::Language; +use std::collections::HashMap; macro_rules! hashmap { // map-like @@ -71,6 +68,20 @@ impl CostModel { builtin_costs: BuiltinCosts::v1(), } } + + pub fn v2() -> Self { + Self { + machine_costs: MachineCosts::v2(), + builtin_costs: BuiltinCosts::v2(), + } + } + + pub fn v3() -> Self { + Self { + machine_costs: MachineCosts::v3(), + builtin_costs: BuiltinCosts::v3(), + } + } } /// There's no entry for Error since we'll be exiting anyway; also, what would @@ -149,11 +160,8 @@ impl MachineCosts { }, } } -} -impl Default for MachineCosts { - /// Default is V2 - fn default() -> Self { + pub fn v2() -> Self { Self { startup: ExBudget { mem: 100, cpu: 100 }, var: ExBudget { @@ -195,6 +203,54 @@ impl Default for MachineCosts { }, } } + + pub fn v3() -> Self { + Self { + startup: ExBudget { mem: 100, cpu: 100 }, + var: ExBudget { + mem: 100, + cpu: 16000, + }, + constant: ExBudget { + mem: 100, + cpu: 16000, + }, + lambda: ExBudget { + mem: 100, + cpu: 16000, + }, + delay: ExBudget { + mem: 100, + cpu: 16000, + }, + force: ExBudget { + mem: 100, + cpu: 16000, + }, + apply: ExBudget { + mem: 100, + cpu: 16000, + }, + builtin: ExBudget { + mem: 100, + cpu: 16000, + }, + constr: ExBudget { + mem: 100, + cpu: 16000, + }, + case: ExBudget { + mem: 100, + cpu: 16000, + }, + } + } +} + +impl Default for MachineCosts { + fn default() -> Self { + MachineCosts::v3() + } } #[derive(Debug, PartialEq)] @@ -316,7 +372,6 @@ impl BuiltinCosts { intercept: 0, slope: 1, }), - cpu: TwoArguments::AddedSizes(AddedSizes { intercept: 69522, slope: 11687, @@ -669,7 +724,6 @@ impl BuiltinCosts { slope: 30000000000, }), }, - bls12_381_g1_add: CostingFun { cpu: TwoArguments::ConstantCost(30000000000), mem: TwoArguments::ConstantCost(30000000000), @@ -760,11 +814,8 @@ impl BuiltinCosts { }, } } -} -impl Default for BuiltinCosts { - /// Default is V2 - fn default() -> Self { + pub fn v2() -> Self { Self { add_integer: CostingFun { mem: TwoArguments::MaxSize(MaxSize { @@ -791,7 +842,6 @@ impl Default for BuiltinCosts { intercept: 0, slope: 1, }), - cpu: TwoArguments::AddedSizes(AddedSizes { intercept: 69522, slope: 11687, @@ -1242,6 +1292,508 @@ impl Default for BuiltinCosts { }, } } + + pub fn v3() -> Self { + Self { + add_integer: CostingFun { + mem: TwoArguments::MaxSize(MaxSize { + intercept: 1, + slope: 1, + }), + cpu: TwoArguments::MaxSize(MaxSize { + intercept: 100788, + slope: 420, + }), + }, + subtract_integer: CostingFun { + mem: TwoArguments::MaxSize(MaxSize { + intercept: 1, + slope: 1, + }), + cpu: TwoArguments::MaxSize(MaxSize { + intercept: 100788, + slope: 420, + }), + }, + multiply_integer: CostingFun { + mem: TwoArguments::AddedSizes(AddedSizes { + intercept: 0, + slope: 1, + }), + cpu: TwoArguments::MultipliedSizes(MultipliedSizes { + intercept: 90434, + slope: 519, + }), + }, + divide_integer: CostingFun { + mem: TwoArguments::SubtractedSizes(SubtractedSizes { + intercept: 0, + slope: 1, + minimum: 1, + }), + cpu: TwoArguments::ConstAboveDiagonalIntoQuadraticXAndY( + 85848, + TwoArgumentsQuadraticFunction { + minimum: 85848, + coeff_00: 123203, + coeff_01: 7305, + coeff_02: -900, + coeff_10: 1716, + coeff_11: 549, + coeff_20: 57, + }, + ), + }, + quotient_integer: CostingFun { + mem: TwoArguments::SubtractedSizes(SubtractedSizes { + intercept: 0, + slope: 1, + minimum: 1, + }), + cpu: TwoArguments::ConstAboveDiagonalIntoQuadraticXAndY( + 85848, + TwoArgumentsQuadraticFunction { + minimum: 85848, + coeff_00: 123203, + coeff_01: 7305, + coeff_02: -900, + coeff_10: 1716, + coeff_11: 549, + coeff_20: 57, + }, + ), + }, + remainder_integer: CostingFun { + mem: TwoArguments::LinearInY(LinearSize { + intercept: 0, + slope: 1, + }), + cpu: TwoArguments::ConstAboveDiagonalIntoQuadraticXAndY( + 85848, + TwoArgumentsQuadraticFunction { + minimum: 85848, + coeff_00: 123203, + coeff_01: 7305, + coeff_02: -900, + coeff_10: 1716, + coeff_11: 549, + coeff_20: 57, + }, + ), + }, + mod_integer: CostingFun { + mem: TwoArguments::LinearInY(LinearSize { + intercept: 0, + slope: 1, + }), + cpu: TwoArguments::ConstAboveDiagonalIntoQuadraticXAndY( + 85848, + TwoArgumentsQuadraticFunction { + minimum: 85848, + coeff_00: 123203, + coeff_01: 7305, + coeff_02: -900, + coeff_10: 1716, + coeff_11: 549, + coeff_20: 57, + }, + ), + }, + equals_integer: CostingFun { + mem: TwoArguments::ConstantCost(1), + cpu: TwoArguments::MinSize(MinSize { + intercept: 51775, + slope: 558, + }), + }, + less_than_integer: CostingFun { + mem: TwoArguments::ConstantCost(1), + cpu: TwoArguments::MinSize(MinSize { + intercept: 44749, + slope: 541, + }), + }, + less_than_equals_integer: CostingFun { + mem: TwoArguments::ConstantCost(1), + cpu: TwoArguments::MinSize(MinSize { + intercept: 43285, + slope: 552, + }), + }, + append_byte_string: CostingFun { + mem: TwoArguments::AddedSizes(AddedSizes { + intercept: 0, + slope: 1, + }), + cpu: TwoArguments::AddedSizes(AddedSizes { + intercept: 1000, + slope: 173, + }), + }, + cons_byte_string: CostingFun { + mem: TwoArguments::AddedSizes(AddedSizes { + intercept: 0, + slope: 1, + }), + cpu: TwoArguments::LinearInY(LinearSize { + intercept: 72010, + slope: 178, + }), + }, + slice_byte_string: CostingFun { + mem: ThreeArguments::LinearInZ(LinearSize { + intercept: 4, + slope: 0, + }), + cpu: ThreeArguments::LinearInZ(LinearSize { + intercept: 20467, + slope: 1, + }), + }, + length_of_byte_string: CostingFun { + mem: OneArgument::ConstantCost(10), + cpu: OneArgument::ConstantCost(22100), + }, + index_byte_string: CostingFun { + mem: TwoArguments::ConstantCost(4), + cpu: TwoArguments::ConstantCost(13169), + }, + equals_byte_string: CostingFun { + mem: TwoArguments::ConstantCost(1), + cpu: TwoArguments::LinearOnDiagonal(ConstantOrLinear { + constant: 24548, + intercept: 29498, + slope: 38, + }), + }, + less_than_byte_string: CostingFun { + mem: TwoArguments::ConstantCost(1), + cpu: TwoArguments::MinSize(MinSize { + intercept: 28999, + slope: 74, + }), + }, + less_than_equals_byte_string: CostingFun { + mem: TwoArguments::ConstantCost(1), + cpu: TwoArguments::MinSize(MinSize { + intercept: 28999, + slope: 74, + }), + }, + sha2_256: CostingFun { + mem: OneArgument::ConstantCost(4), + cpu: OneArgument::LinearCost(LinearSize { + intercept: 270652, + slope: 22588, + }), + }, + sha3_256: CostingFun { + mem: OneArgument::ConstantCost(4), + cpu: OneArgument::LinearCost(LinearSize { + intercept: 1457325, + slope: 64566, + }), + }, + blake2b_256: CostingFun { + mem: OneArgument::ConstantCost(4), + cpu: OneArgument::LinearCost(LinearSize { + intercept: 201305, + slope: 8356, + }), + }, + verify_ed25519_signature: CostingFun { + mem: ThreeArguments::ConstantCost(10), + cpu: ThreeArguments::LinearInY(LinearSize { + intercept: 53384111, + slope: 14333, + }), + }, + verify_ecdsa_secp256k1_signature: CostingFun { + mem: ThreeArguments::ConstantCost(10), + cpu: ThreeArguments::ConstantCost(43053543), + }, + verify_schnorr_secp256k1_signature: CostingFun { + mem: ThreeArguments::ConstantCost(10), + cpu: ThreeArguments::LinearInY(LinearSize { + intercept: 43574283, + slope: 26308, + }), + }, + append_string: CostingFun { + mem: TwoArguments::AddedSizes(AddedSizes { + intercept: 4, + slope: 1, + }), + cpu: TwoArguments::AddedSizes(AddedSizes { + intercept: 1000, + slope: 59957, + }), + }, + equals_string: CostingFun { + mem: TwoArguments::ConstantCost(1), + cpu: TwoArguments::LinearOnDiagonal(ConstantOrLinear { + constant: 39184, + intercept: 1000, + slope: 60594, + }), + }, + encode_utf8: CostingFun { + mem: OneArgument::LinearCost(LinearSize { + intercept: 4, + slope: 2, + }), + cpu: OneArgument::LinearCost(LinearSize { + intercept: 1000, + slope: 42921, + }), + }, + decode_utf8: CostingFun { + mem: OneArgument::LinearCost(LinearSize { + intercept: 4, + slope: 2, + }), + cpu: OneArgument::LinearCost(LinearSize { + intercept: 91189, + slope: 769, + }), + }, + if_then_else: CostingFun { + mem: ThreeArguments::ConstantCost(1), + cpu: ThreeArguments::ConstantCost(76049), + }, + choose_unit: CostingFun { + mem: TwoArguments::ConstantCost(4), + cpu: TwoArguments::ConstantCost(61462), + }, + trace: CostingFun { + mem: TwoArguments::ConstantCost(32), + cpu: TwoArguments::ConstantCost(59498), + }, + fst_pair: CostingFun { + mem: OneArgument::ConstantCost(32), + cpu: OneArgument::ConstantCost(141895), + }, + snd_pair: CostingFun { + mem: OneArgument::ConstantCost(32), + cpu: OneArgument::ConstantCost(141992), + }, + choose_list: CostingFun { + mem: ThreeArguments::ConstantCost(32), + cpu: ThreeArguments::ConstantCost(132994), + }, + mk_cons: CostingFun { + mem: TwoArguments::ConstantCost(32), + cpu: TwoArguments::ConstantCost(72362), + }, + head_list: CostingFun { + mem: OneArgument::ConstantCost(32), + cpu: OneArgument::ConstantCost(83150), + }, + tail_list: CostingFun { + mem: OneArgument::ConstantCost(32), + cpu: OneArgument::ConstantCost(81663), + }, + null_list: CostingFun { + mem: OneArgument::ConstantCost(32), + cpu: OneArgument::ConstantCost(74433), + }, + choose_data: CostingFun { + mem: SixArguments::ConstantCost(32), + cpu: SixArguments::ConstantCost(94375), + }, + constr_data: CostingFun { + mem: TwoArguments::ConstantCost(32), + cpu: TwoArguments::ConstantCost(22151), + }, + map_data: CostingFun { + mem: OneArgument::ConstantCost(32), + cpu: OneArgument::ConstantCost(68246), + }, + list_data: CostingFun { + mem: OneArgument::ConstantCost(32), + cpu: OneArgument::ConstantCost(33852), + }, + i_data: CostingFun { + mem: OneArgument::ConstantCost(32), + cpu: OneArgument::ConstantCost(15299), + }, + b_data: CostingFun { + mem: OneArgument::ConstantCost(32), + cpu: OneArgument::ConstantCost(11183), + }, + un_constr_data: CostingFun { + mem: OneArgument::ConstantCost(32), + cpu: OneArgument::ConstantCost(24588), + }, + un_map_data: CostingFun { + mem: OneArgument::ConstantCost(32), + cpu: OneArgument::ConstantCost(24623), + }, + un_list_data: CostingFun { + mem: OneArgument::ConstantCost(32), + cpu: OneArgument::ConstantCost(25933), + }, + un_i_data: CostingFun { + mem: OneArgument::ConstantCost(32), + cpu: OneArgument::ConstantCost(20744), + }, + un_b_data: CostingFun { + mem: OneArgument::ConstantCost(32), + cpu: OneArgument::ConstantCost(20142), + }, + equals_data: CostingFun { + mem: TwoArguments::ConstantCost(1), + cpu: TwoArguments::MinSize(MinSize { + intercept: 898148, + slope: 27279, + }), + }, + mk_pair_data: CostingFun { + mem: TwoArguments::ConstantCost(32), + cpu: TwoArguments::ConstantCost(11546), + }, + mk_nil_data: CostingFun { + mem: OneArgument::ConstantCost(32), + cpu: OneArgument::ConstantCost(7243), + }, + mk_nil_pair_data: CostingFun { + mem: OneArgument::ConstantCost(32), + cpu: OneArgument::ConstantCost(7391), + }, + serialise_data: CostingFun { + mem: OneArgument::LinearCost(LinearSize { + intercept: 0, + slope: 2, + }), + cpu: OneArgument::LinearCost(LinearSize { + intercept: 955506, + slope: 213312, + }), + }, + blake2b_224: CostingFun { + cpu: OneArgument::LinearCost(LinearSize { + intercept: 207616, + slope: 8310, + }), + mem: OneArgument::ConstantCost(4), + }, + keccak_256: CostingFun { + cpu: OneArgument::LinearCost(LinearSize { + intercept: 2261318, + slope: 64571, + }), + mem: OneArgument::ConstantCost(4), + }, + bls12_381_g1_add: CostingFun { + cpu: TwoArguments::ConstantCost(962335), + mem: TwoArguments::ConstantCost(18), + }, + bls12_381_g1_neg: CostingFun { + cpu: OneArgument::ConstantCost(267929), + mem: OneArgument::ConstantCost(18), + }, + bls12_381_g1_scalar_mul: CostingFun { + cpu: TwoArguments::LinearInX(LinearSize { + intercept: 76433006, + slope: 8868, + }), + mem: TwoArguments::ConstantCost(18), + }, + bls12_381_g1_equal: CostingFun { + cpu: TwoArguments::ConstantCost(442008), + mem: TwoArguments::ConstantCost(1), + }, + bls12_381_g1_compress: CostingFun { + cpu: OneArgument::ConstantCost(2780678), + mem: OneArgument::ConstantCost(6), + }, + bls12_381_g1_uncompress: CostingFun { + cpu: OneArgument::ConstantCost(52948122), + mem: OneArgument::ConstantCost(18), + }, + bls12_381_g1_hash_to_group: CostingFun { + cpu: TwoArguments::LinearInX(LinearSize { + intercept: 52538055, + slope: 3756, + }), + mem: TwoArguments::ConstantCost(18), + }, + bls12_381_g2_add: CostingFun { + cpu: TwoArguments::ConstantCost(1995836), + mem: TwoArguments::ConstantCost(36), + }, + bls12_381_g2_neg: CostingFun { + cpu: OneArgument::ConstantCost(284546), + mem: OneArgument::ConstantCost(36), + }, + bls12_381_g2_scalar_mul: CostingFun { + cpu: TwoArguments::LinearInX(LinearSize { + intercept: 158221314, + slope: 26549, + }), + mem: TwoArguments::ConstantCost(36), + }, + bls12_381_g2_equal: CostingFun { + cpu: TwoArguments::ConstantCost(901022), + mem: TwoArguments::ConstantCost(1), + }, + bls12_381_g2_compress: CostingFun { + cpu: OneArgument::ConstantCost(3227919), + mem: OneArgument::ConstantCost(12), + }, + bls12_381_g2_uncompress: CostingFun { + cpu: OneArgument::ConstantCost(74698472), + mem: OneArgument::ConstantCost(36), + }, + bls12_381_g2_hash_to_group: CostingFun { + cpu: TwoArguments::LinearInX(LinearSize { + intercept: 166917843, + slope: 4307, + }), + mem: TwoArguments::ConstantCost(36), + }, + bls12_381_miller_loop: CostingFun { + cpu: TwoArguments::ConstantCost(254006273), + mem: TwoArguments::ConstantCost(72), + }, + bls12_381_mul_ml_result: CostingFun { + cpu: TwoArguments::ConstantCost(2174038), + mem: TwoArguments::ConstantCost(72), + }, + bls12_381_final_verify: CostingFun { + cpu: TwoArguments::ConstantCost(333849714), + mem: TwoArguments::ConstantCost(1), + }, + integer_to_byte_string: CostingFun { + cpu: ThreeArguments::QuadraticInZ(QuadraticFunction { + coeff_0: 1293828, + coeff_1: 28716, + coeff_2: 63, + }), + mem: ThreeArguments::LiteralInYorLinearInZ(LinearSize { + intercept: 0, + slope: 1, + }), + }, + byte_string_to_integer: CostingFun { + cpu: TwoArguments::QuadraticInY(QuadraticFunction { + coeff_0: 1006041, + coeff_1: 43623, + coeff_2: 251, + }), + mem: TwoArguments::LinearInY(LinearSize { + intercept: 0, + slope: 1, + }), + }, + } + } +} + +impl Default for BuiltinCosts { + fn default() -> Self { + BuiltinCosts::v3() + } } impl BuiltinCosts { @@ -2190,181 +2742,257 @@ pub fn initialize_cost_model(version: &Language, costs: &[i64]) -> CostModel { } Language::PlutusV3 => { hashmap! { - "add_integer-cpu-arguments-intercept"=> costs[0], - "add_integer-cpu-arguments-slope"=> costs[1], - "add_integer-mem-arguments-intercept"=> costs[2], - "add_integer-mem-arguments-slope"=> costs[3], - "append_byte_string-cpu-arguments-intercept"=> costs[4], - "append_byte_string-cpu-arguments-slope"=> costs[5], - "append_byte_string-mem-arguments-intercept"=> costs[6], - "append_byte_string-mem-arguments-slope"=> costs[7], - "append_string-cpu-arguments-intercept"=> costs[8], - "append_string-cpu-arguments-slope"=> costs[9], - "append_string-mem-arguments-intercept"=> costs[10], - "append_string-mem-arguments-slope"=> costs[11], - "b_data-cpu-arguments"=> costs[12], - "b_data-mem-arguments"=> costs[13], - "blake2b_256-cpu-arguments-intercept"=> costs[14], - "blake2b_256-cpu-arguments-slope"=> costs[15], - "blake2b_256-mem-arguments"=> costs[16], - "cek_apply_cost-exBudgetCPU"=> costs[17], - "cek_apply_cost-exBudgetmem"=> costs[18], - "cek_builtin_cost-exBudgetCPU"=> costs[19], - "cek_builtin_cost-exBudgetmem"=> costs[20], - "cek_const_cost-exBudgetCPU"=> costs[21], - "cek_const_cost-exBudgetmem"=> costs[22], - "cek_delay_cost-exBudgetCPU"=> costs[23], - "cek_delay_cost-exBudgetmem"=> costs[24], - "cek_force_cost-exBudgetCPU"=> costs[25], - "cek_force_cost-exBudgetmem"=> costs[26], - "cek_lam_cost-exBudgetCPU"=> costs[27], - "cek_lam_cost-exBudgetmem"=> costs[28], - "cek_startup_cost-exBudgetCPU"=> costs[29], - "cek_startup_cost-exBudgetmem"=> costs[30], - "cek_var_cost-exBudgetCPU"=> costs[31], - "cek_var_cost-exBudgetmem"=> costs[32], - "choose_data-cpu-arguments"=> costs[33], - "choose_data-mem-arguments"=> costs[34], - "choose_list-cpu-arguments"=> costs[35], - "choose_list-mem-arguments"=> costs[36], - "choose_unit-cpu-arguments"=> costs[37], - "choose_unit-mem-arguments"=> costs[38], - "cons_byte_string-cpu-arguments-intercept"=> costs[39], - "cons_byte_string-cpu-arguments-slope"=> costs[40], - "cons_byte_string-mem-arguments-intercept"=> costs[41], - "cons_byte_string-mem-arguments-slope"=> costs[42], - "constr_data-cpu-arguments"=> costs[43], - "constr_data-mem-arguments"=> costs[44], - "decode_utf8-cpu-arguments-intercept"=> costs[45], - "decode_utf8-cpu-arguments-slope"=> costs[46], - "decode_utf8-mem-arguments-intercept"=> costs[47], - "decode_utf8-mem-arguments-slope"=> costs[48], - "divide_integer-cpu-arguments-constant"=> costs[49], - "divide_integer-cpu-arguments-model-arguments-intercept"=> costs[50], - "divide_integer-cpu-arguments-model-arguments-slope"=> costs[51], - "divide_integer-mem-arguments-intercept"=> costs[52], - "divide_integer-mem-arguments-minimum"=> costs[53], - "divide_integer-mem-arguments-slope"=> costs[54], - "encode_utf8-cpu-arguments-intercept"=> costs[55], - "encode_utf8-cpu-arguments-slope"=> costs[56], - "encode_utf8-mem-arguments-intercept"=> costs[57], - "encode_utf8-mem-arguments-slope"=> costs[58], - "equals_byte_string-cpu-arguments-constant"=> costs[59], - "equals_byte_string-cpu-arguments-intercept"=> costs[60], - "equals_byte_string-cpu-arguments-slope"=> costs[61], - "equals_byte_string-mem-arguments"=> costs[62], - "equals_data-cpu-arguments-intercept"=> costs[63], - "equals_data-cpu-arguments-slope"=> costs[64], - "equals_data-mem-arguments"=> costs[65], - "equals_integer-cpu-arguments-intercept"=> costs[66], - "equals_integer-cpu-arguments-slope"=> costs[67], - "equals_integer-mem-arguments"=> costs[68], - "equals_string-cpu-arguments-constant"=> costs[69], - "equals_string-cpu-arguments-intercept"=> costs[70], - "equals_string-cpu-arguments-slope"=> costs[71], - "equals_string-mem-arguments"=> costs[72], - "fst_pair-cpu-arguments"=> costs[73], - "fst_pair-mem-arguments"=> costs[74], - "head_list-cpu-arguments"=> costs[75], - "head_list-mem-arguments"=> costs[76], - "i_data-cpu-arguments"=> costs[77], - "i_data-mem-arguments"=> costs[78], - "if_then_else-cpu-arguments"=> costs[79], - "if_then_else-mem-arguments"=> costs[80], - "index_byte_string-cpu-arguments"=> costs[81], - "index_byte_string-mem-arguments"=> costs[82], - "length_of_byte_string-cpu-arguments"=> costs[83], - "length_of_byte_string-mem-arguments"=> costs[84], - "less_than_byte_string-cpu-arguments-intercept"=> costs[85], - "less_than_byte_string-cpu-arguments-slope"=> costs[86], - "less_than_byte_string-mem-arguments"=> costs[87], - "less_than_equals_byte_string-cpu-arguments-intercept"=> costs[88], - "less_than_equals_byte_string-cpu-arguments-slope"=> costs[89], - "less_than_equals_byte_string-mem-arguments"=> costs[90], - "less_than_equals_integer-cpu-arguments-intercept"=> costs[91], - "less_than_equals_integer-cpu-arguments-slope"=> costs[92], - "less_than_equals_integer-mem-arguments"=> costs[93], - "less_than_integer-cpu-arguments-intercept"=> costs[94], - "less_than_integer-cpu-arguments-slope"=> costs[95], - "less_than_integer-mem-arguments"=> costs[96], - "list_data-cpu-arguments"=> costs[97], - "list_data-mem-arguments"=> costs[98], - "map_data-cpu-arguments"=> costs[99], - "map_data-mem-arguments"=> costs[100], - "mk_cons-cpu-arguments"=> costs[101], - "mk_cons-mem-arguments"=> costs[102], - "mk_nil_data-cpu-arguments"=> costs[103], - "mk_nil_data-mem-arguments"=> costs[104], - "mk_nil_pair_data-cpu-arguments"=> costs[105], - "mk_nil_pair_data-mem-arguments"=> costs[106], - "mk_pair_data-cpu-arguments"=> costs[107], - "mk_pair_data-mem-arguments"=> costs[108], - "mod_integer-cpu-arguments-constant"=> costs[109], - "mod_integer-cpu-arguments-model-arguments-intercept"=> costs[110], - "mod_integer-cpu-arguments-model-arguments-slope"=> costs[111], - "mod_integer-mem-arguments-intercept"=> costs[112], - "mod_integer-mem-arguments-minimum"=> costs[113], - "mod_integer-mem-arguments-slope"=> costs[114], - "multiply_integer-cpu-arguments-intercept"=> costs[115], - "multiply_integer-cpu-arguments-slope"=> costs[116], - "multiply_integer-mem-arguments-intercept"=> costs[117], - "multiply_integer-mem-arguments-slope"=> costs[118], - "null_list-cpu-arguments"=> costs[119], - "null_list-mem-arguments"=> costs[120], - "quotient_integer-cpu-arguments-constant"=> costs[121], - "quotient_integer-cpu-arguments-model-arguments-intercept"=> costs[122], - "quotient_integer-cpu-arguments-model-arguments-slope"=> costs[123], - "quotient_integer-mem-arguments-intercept"=> costs[124], - "quotient_integer-mem-arguments-minimum"=> costs[125], - "quotient_integer-mem-arguments-slope"=> costs[126], - "remainder_integer-cpu-arguments-constant"=> costs[127], - "remainder_integer-cpu-arguments-model-arguments-intercept"=> costs[128], - "remainder_integer-cpu-arguments-model-arguments-slope"=> costs[129], - "remainder_integer-mem-arguments-intercept"=> costs[130], - "remainder_integer-mem-arguments-minimum"=> costs[131], - "remainder_integer-mem-arguments-slope"=> costs[132], - "serialise_data-cpu-arguments-intercept"=> costs[133], - "serialise_data-cpu-arguments-slope"=> costs[134], - "serialise_data-mem-arguments-intercept"=> costs[135], - "serialise_data-mem-arguments-slope"=> costs[136], - "sha2_256-cpu-arguments-intercept"=> costs[137], - "sha2_256-cpu-arguments-slope"=> costs[138], - "sha2_256-mem-arguments"=> costs[139], - "sha3_256-cpu-arguments-intercept"=> costs[140], - "sha3_256-cpu-arguments-slope"=> costs[141], - "sha3_256-mem-arguments"=> costs[142], - "slice_byte_string-cpu-arguments-intercept"=> costs[143], - "slice_byte_string-cpu-arguments-slope"=> costs[144], - "slice_byte_string-mem-arguments-intercept"=> costs[145], - "slice_byte_string-mem-arguments-slope"=> costs[146], - "snd_pair-cpu-arguments"=> costs[147], - "snd_pair-mem-arguments"=> costs[148], - "subtract_integer-cpu-arguments-intercept"=> costs[149], - "subtract_integer-cpu-arguments-slope"=> costs[150], - "subtract_integer-mem-arguments-intercept"=> costs[151], - "subtract_integer-mem-arguments-slope"=> costs[152], - "tail_list-cpu-arguments"=> costs[153], - "tail_list-mem-arguments"=> costs[154], - "trace-cpu-arguments"=> costs[155], - "trace-mem-arguments"=> costs[156], - "un_b_data-cpu-arguments"=> costs[157], - "un_b_data-mem-arguments"=> costs[158], - "un_constr_data-cpu-arguments"=> costs[159], - "un_constr_data-mem-arguments"=> costs[160], - "un_i_data-cpu-arguments"=> costs[161], - "un_i_data-mem-arguments"=> costs[162], - "un_list_data-cpu-arguments"=> costs[163], - "un_list_data-mem-arguments"=> costs[164], - "un_map_data-cpu-arguments"=> costs[165], - "un_map_data-mem-arguments"=> costs[166], - "verify_ecdsa_secp256k1_signature-cpu-arguments"=> costs[167], - "verify_ecdsa_secp256k1_signature-mem-arguments"=> costs[168], - "verify_ed25519_signature-cpu-arguments-intercept"=> costs[169], - "verify_ed25519_signature-cpu-arguments-slope"=> costs[170], - "verify_ed25519_signature-mem-arguments"=> costs[171], - "verify_schnorr_secp256k1_signature-cpu-arguments-intercept"=> costs[172], - "verify_schnorr_secp256k1_signature-cpu-arguments-slope"=> costs[173], - "verify_schnorr_secp256k1_signature-mem-arguments"=> costs[174] + "add_integer-cpu-arguments-intercept" => costs[0], + "add_integer-cpu-arguments-slope" => costs[1], + "add_integer-memory-arguments-intercept" => costs[2], + "add_integer-memory-arguments-slope" => costs[3], + "append_byte_string-cpu-arguments-intercept" => costs[4], + "append_byte_string-cpu-arguments-slope" => costs[5], + "append_byte_string-memory-arguments-intercept" => costs[6], + "append_byte_string-memory-arguments-slope" => costs[7], + "append_string-cpu-arguments-intercept" => costs[8], + "append_string-cpu-arguments-slope" => costs[9], + "append_string-memory-arguments-intercept" => costs[10], + "append_string-memory-arguments-slope" => costs[11], + "b_data-cpu-arguments" => costs[12], + "b_data-memory-arguments" => costs[13], + "blake2b_256-cpu-arguments-intercept" => costs[14], + "blake2b_256-cpu-arguments-slope" => costs[15], + "blake2b_256-memory-arguments" => costs[16], + "cek_apply_cost-exBudgetCPU" => costs[17], + "cek_apply_cost-exBudgetMemory" => costs[18], + "cek_builtin_cost-exBudgetCPU" => costs[19], + "cek_builtin_cost-exBudgetMemory" => costs[20], + "cek_const_cost-exBudgetCPU" => costs[21], + "cek_const_cost-exBudgetMemory" => costs[22], + "cek_delay_cost-exBudgetCPU" => costs[23], + "cek_delay_cost-exBudgetMemory" => costs[24], + "cek_force_cost-exBudgetCPU" => costs[25], + "cek_force_cost-exBudgetMemory" => costs[26], + "cek_lam_cost-exBudgetCPU" => costs[27], + "cek_lam_cost-exBudgetMemory" => costs[28], + "cek_startup_cost-exBudgetCPU" => costs[29], + "cek_startup_cost-exBudgetMemory" => costs[30], + "cek_var_cost-exBudgetCPU" => costs[31], + "cek_var_cost-exBudgetMemory" => costs[32], + "choose_data-cpu-arguments" => costs[33], + "choose_data-memory-arguments" => costs[34], + "choose_list-cpu-arguments" => costs[35], + "choose_list-memory-arguments" => costs[36], + "choose_unit-cpu-arguments" => costs[37], + "choose_unit-memory-arguments" => costs[38], + "cons_byte_string-cpu-arguments-intercept" => costs[39], + "cons_byte_string-cpu-arguments-slope" => costs[40], + "cons_byte_string-memory-arguments-intercept" => costs[41], + "cons_byte_string-memory-arguments-slope" => costs[42], + "constr_data-cpu-arguments" => costs[43], + "constr_data-memory-arguments" => costs[44], + "decode_utf8-cpu-arguments-intercept" => costs[45], + "decode_utf8-cpu-arguments-slope" => costs[46], + "decode_utf8-memory-arguments-intercept" => costs[47], + "decode_utf8-memory-arguments-slope" => costs[48], + "divide_integer-cpu-arguments-constant" => costs[49], + "divide_integer-cpu-arguments-model-arguments-c00" => costs[50], + "divide_integer-cpu-arguments-model-arguments-c01" => costs[51], + "divide_integer-cpu-arguments-model-arguments-c02" => costs[52], + "divide_integer-cpu-arguments-model-arguments-c10" => costs[53], + "divide_integer-cpu-arguments-model-arguments-c11" => costs[54], + "divide_integer-cpu-arguments-model-arguments-c20" => costs[55], + "divide_integer-cpu-arguments-model-arguments-minimum" => costs[56], + "divide_integer-memory-arguments-intercept" => costs[57], + "divide_integer-memory-arguments-minimum" => costs[58], + "divide_integer-memory-arguments-slope" => costs[59], + "encode_utf8-cpu-arguments-intercept" => costs[60], + "encode_utf8-cpu-arguments-slope" => costs[61], + "encode_utf8-memory-arguments-intercept" => costs[62], + "encode_utf8-memory-arguments-slope" => costs[63], + "equals_byte_string-cpu-arguments-constant" => costs[64], + "equals_byte_string-cpu-arguments-intercept" => costs[65], + "equals_byte_string-cpu-arguments-slope" => costs[66], + "equals_byte_string-memory-arguments" => costs[67], + "equals_data-cpu-arguments-intercept" => costs[68], + "equals_data-cpu-arguments-slope" => costs[69], + "equals_data-memory-arguments" => costs[70], + "equals_integer-cpu-arguments-intercept" => costs[71], + "equals_integer-cpu-arguments-slope" => costs[72], + "equals_integer-memory-arguments" => costs[73], + "equals_string-cpu-arguments-constant" => costs[74], + "equals_string-cpu-arguments-intercept" => costs[75], + "equals_string-cpu-arguments-slope" => costs[76], + "equals_string-memory-arguments" => costs[77], + "fst_pair-cpu-arguments" => costs[78], + "fst_pair-memory-arguments" => costs[79], + "head_list-cpu-arguments" => costs[80], + "head_list-memory-arguments" => costs[81], + "i_data-cpu-arguments" => costs[82], + "i_data-memory-arguments" => costs[83], + "if_then_else-cpu-arguments" => costs[84], + "if_then_else-memory-arguments" => costs[85], + "index_byte_string-cpu-arguments" => costs[86], + "index_byte_string-memory-arguments" => costs[87], + "length_of_byte_string-cpu-arguments" => costs[88], + "length_of_byte_string-memory-arguments" => costs[89], + "less_than_byte_string-cpu-arguments-intercept" => costs[90], + "less_than_byte_string-cpu-arguments-slope" => costs[91], + "less_than_byte_string-memory-arguments" => costs[92], + "less_than_equals_byte_string-cpu-arguments-intercept" => costs[93], + "less_than_equals_byte_string-cpu-arguments-slope" => costs[94], + "less_than_equals_byte_string-memory-arguments" => costs[95], + "less_than_equals_integer-cpu-arguments-intercept" => costs[96], + "less_than_equals_integer-cpu-arguments-slope" => costs[97], + "less_than_equals_integer-memory-arguments" => costs[98], + "less_than_integer-cpu-arguments-intercept" => costs[99], + "less_than_integer-cpu-arguments-slope" => costs[100], + "less_than_integer-memory-arguments" => costs[101], + "list_data-cpu-arguments" => costs[102], + "list_data-memory-arguments" => costs[103], + "map_data-cpu-arguments" => costs[104], + "map_data-memory-arguments" => costs[105], + "mk_cons-cpu-arguments" => costs[106], + "mk_cons-memory-arguments" => costs[107], + "mk_nil_data-cpu-arguments" => costs[108], + "mk_nil_data-memory-arguments" => costs[109], + "mk_nil_pair_data-cpu-arguments" => costs[110], + "mk_nil_pair_data-memory-arguments" => costs[111], + "mk_pair_data-cpu-arguments" => costs[112], + "mk_pair_data-memory-arguments" => costs[113], + "mod_integer-cpu-arguments-constant" => costs[114], + "mod_integer-cpu-arguments-model-arguments-c00" => costs[115], + "mod_integer-cpu-arguments-model-arguments-c01" => costs[116], + "mod_integer-cpu-arguments-model-arguments-c02" => costs[117], + "mod_integer-cpu-arguments-model-arguments-c10" => costs[118], + "mod_integer-cpu-arguments-model-arguments-c11" => costs[119], + "mod_integer-cpu-arguments-model-arguments-c20" => costs[120], + "mod_integer-cpu-arguments-model-arguments-minimum" => costs[121], + "mod_integer-memory-arguments-intercept" => costs[122], + "mod_integer-memory-arguments-slope" => costs[123], + "multiply_integer-cpu-arguments-intercept" => costs[124], + "multiply_integer-cpu-arguments-slope" => costs[125], + "multiply_integer-memory-arguments-intercept" => costs[126], + "multiply_integer-memory-arguments-slope" => costs[127], + "null_list-cpu-arguments" => costs[128], + "null_list-memory-arguments" => costs[129], + "quotient_integer-cpu-arguments-constant" => costs[130], + "quotient_integer-cpu-arguments-model-arguments-c00" => costs[131], + "quotient_integer-cpu-arguments-model-arguments-c01" => costs[132], + "quotient_integer-cpu-arguments-model-arguments-c02" => costs[133], + "quotient_integer-cpu-arguments-model-arguments-c10" => costs[134], + "quotient_integer-cpu-arguments-model-arguments-c11" => costs[135], + "quotient_integer-cpu-arguments-model-arguments-c20" => costs[136], + "quotient_integer-cpu-arguments-model-arguments-minimum" => costs[137], + "quotient_integer-memory-arguments-intercept" => costs[138], + "quotient_integer-memory-arguments-minimum" => costs[139], + "quotient_integer-memory-arguments-slope" => costs[140], + "remainder_integer-cpu-arguments-constant" => costs[141], + "remainder_integer-cpu-arguments-model-arguments-c00" => costs[142], + "remainder_integer-cpu-arguments-model-arguments-c01" => costs[143], + "remainder_integer-cpu-arguments-model-arguments-c02" => costs[144], + "remainder_integer-cpu-arguments-model-arguments-c10" => costs[145], + "remainder_integer-cpu-arguments-model-arguments-c11" => costs[146], + "remainder_integer-cpu-arguments-model-arguments-c20" => costs[147], + "remainder_integer-cpu-arguments-model-arguments-minimum" => costs[148], + "remainder_integer-memory-arguments-intercept" => costs[149], + "remainder_integer-memory-arguments-slope" => costs[150], + "serialise_data-cpu-arguments-intercept" => costs[151], + "serialise_data-cpu-arguments-slope" => costs[152], + "serialise_data-memory-arguments-intercept" => costs[153], + "serialise_data-memory-arguments-slope" => costs[154], + "sha2_256-cpu-arguments-intercept" => costs[155], + "sha2_256-cpu-arguments-slope" => costs[156], + "sha2_256-memory-arguments" => costs[157], + "sha3_256-cpu-arguments-intercept" => costs[158], + "sha3_256-cpu-arguments-slope" => costs[159], + "sha3_256-memory-arguments" => costs[160], + "slice_byte_string-cpu-arguments-intercept" => costs[161], + "slice_byte_string-cpu-arguments-slope" => costs[162], + "slice_byte_string-memory-arguments-intercept" => costs[163], + "slice_byte_string-memory-arguments-slope" => costs[164], + "snd_pair-cpu-arguments" => costs[165], + "snd_pair-memory-arguments" => costs[166], + "subtract_integer-cpu-arguments-intercept" => costs[167], + "subtract_integer-cpu-arguments-slope" => costs[168], + "subtract_integer-memory-arguments-intercept" => costs[169], + "subtract_integer-memory-arguments-slope" => costs[170], + "tail_list-cpu-arguments" => costs[171], + "tail_list-memory-arguments" => costs[172], + "trace-cpu-arguments" => costs[173], + "trace-memory-arguments" => costs[174], + "un_b_data-cpu-arguments" => costs[175], + "un_b_data-memory-arguments" => costs[176], + "un_constr_data-cpu-arguments" => costs[177], + "un_constr_data-memory-arguments" => costs[178], + "un_i_data-cpu-arguments" => costs[179], + "un_i_data-memory-arguments" => costs[180], + "un_list_data-cpu-arguments" => costs[181], + "un_list_data-memory-arguments" => costs[182], + "un_map_data-cpu-arguments" => costs[183], + "un_map_data-memory-arguments" => costs[184], + "verify_ecdsa_secp256k1_signature-cpu-arguments" => costs[185], + "verify_ecdsa_secp256k1_signature-memory-arguments" => costs[186], + "verify_ed25519_signature-cpu-arguments-intercept" => costs[187], + "verify_ed25519_signature-cpu-arguments-slope" => costs[188], + "verify_ed25519_signature-memory-arguments" => costs[189], + "verify_schnorr_secp256k1_signature-cpu-arguments-intercept" => costs[190], + "verify_schnorr_secp256k1_signature-cpu-arguments-slope" => costs[191], + "verify_schnorr_secp256k1_signature-memory-arguments" => costs[192], + "cek_constr_cost-exBudgetCPU" => costs[193], + "cek_constr_cost-exBudgetMemory" => costs[194], + "cek_case_cost-exBudgetCPU" => costs[195], + "cek_case_cost-exBudgetMemory" => costs[196], + "bls12_381_g1_add-cpu-arguments" => costs[197], + "bls12_381_g1_add-memory-arguments" => costs[198], + "bls12_381_g1_compress-cpu-arguments" => costs[199], + "bls12_381_g1_compress-memory-arguments" => costs[200], + "bls12_381_g1_equal-cpu-arguments" => costs[201], + "bls12_381_g1_equal-memory-arguments" => costs[202], + "bls12_381_g1_hash_to_group-cpu-arguments-intercept" => costs[203], + "bls12_381_g1_hash_to_group-cpu-arguments-slope" => costs[204], + "bls12_381_g1_hash_to_group-memory-arguments" => costs[205], + "bls12_381_g1_neg-cpu-arguments" => costs[206], + "bls12_381_g1_neg-memory-arguments" => costs[207], + "bls12_381_g1_scalar_mul-cpu-arguments-intercept" => costs[208], + "bls12_381_g1_scalar_mul-cpu-arguments-slope" => costs[209], + "bls12_381_g1_scalar_mul-memory-arguments" => costs[210], + "bls12_381_g1_uncompress-cpu-arguments" => costs[211], + "bls12_381_g1_uncompress-memory-arguments" => costs[212], + "bls12_381_g2_add-cpu-arguments" => costs[213], + "bls12_381_g2_add-memory-arguments" => costs[214], + "bls12_381_g2_compress-cpu-arguments" => costs[215], + "bls12_381_g2_compress-memory-arguments" => costs[216], + "bls12_381_g2_equal-cpu-arguments" => costs[217], + "bls12_381_g2_equal-memory-arguments" => costs[218], + "bls12_381_g2_hash_to_group-cpu-arguments-intercept" => costs[219], + "bls12_381_g2_hash_to_group-cpu-arguments-slope" => costs[220], + "bls12_381_g2_hash_to_group-memory-arguments" => costs[221], + "bls12_381_g2_neg-cpu-arguments" => costs[222], + "bls12_381_g2_neg-memory-arguments" => costs[223], + "bls12_381_g2_scalar_mul-cpu-arguments-intercept" => costs[224], + "bls12_381_g2_scalar_mul-cpu-arguments-slope" => costs[225], + "bls12_381_g2_scalar_mul-memory-arguments" => costs[226], + "bls12_381_g2_uncompress-cpu-arguments" => costs[227], + "bls12_381_g2_uncompress-memory-arguments" => costs[228], + "bls12_381_final_verify-cpu-arguments" => costs[229], + "bls12_381_final_verify-memory-arguments" => costs[230], + "bls12_381_miller_loop-cpu-arguments" => costs[231], + "bls12_381_miller_loop-memory-arguments" => costs[232], + "bls12_381_mul_ml_result-cpu-arguments" => costs[233], + "bls12_381_mul_ml_result-memory-arguments" => costs[234], + "keccak_256-cpu-arguments-intercept" => costs[235], + "keccak_256-cpu-arguments-slope" => costs[236], + "keccak_256-memory-arguments" => costs[237], + "blake2b_224-cpu-arguments-intercept" => costs[238], + "blake2b_224-cpu-arguments-slope" => costs[239], + "blake2b_224-memory-arguments" => costs[240], + "integer_to_byte_string-cpu-arguments-c0" => costs[241], + "integer_to_byte_string-cpu-arguments-c1" => costs[242], + "integer_to_byte_string-cpu-arguments-c2" => costs[243], + "integer_to_byte_string-memory-arguments-intercept" => costs[244], + "integer_to_byte_string-memory-arguments-slope" => costs[245], + "byte_string_to_integer-cpu-arguments-c0" => costs[246], + "byte_string_to_integer-cpu-arguments-c1" => costs[247], + "byte_string_to_integer-cpu-arguments-c2" => costs[248], + "byte_string_to_integer-memory-arguments-intercept" => costs[249], + "byte_string_to_integer-memory-arguments-slope" => costs[250] } } }; @@ -2498,14 +3126,26 @@ pub fn initialize_cost_model(version: &Language, costs: &[i64]) -> CostModel { .get("multiply_integer-mem-arguments-slope") .unwrap_or(&30000000000), }), - cpu: TwoArguments::AddedSizes(AddedSizes { - intercept: *cost_map - .get("multiply_integer-cpu-arguments-intercept") - .unwrap_or(&30000000000), - slope: *cost_map - .get("multiply_integer-cpu-arguments-slope") - .unwrap_or(&30000000000), - }), + cpu: match version { + Language::PlutusV1 | Language::PlutusV2 => { + TwoArguments::AddedSizes(AddedSizes { + intercept: *cost_map + .get("multiply_integer-cpu-arguments-intercept") + .unwrap_or(&30000000000), + slope: *cost_map + .get("multiply_integer-cpu-arguments-slope") + .unwrap_or(&30000000000), + }) + } + Language::PlutusV3 => TwoArguments::MultipliedSizes(MultipliedSizes { + intercept: *cost_map + .get("multiply_integer-cpu-arguments-intercept") + .unwrap_or(&30000000000), + slope: *cost_map + .get("multiply_integer-cpu-arguments-slope") + .unwrap_or(&30000000000), + }), + }, }, divide_integer: CostingFun { mem: TwoArguments::SubtractedSizes(SubtractedSizes { @@ -2519,19 +3159,51 @@ pub fn initialize_cost_model(version: &Language, costs: &[i64]) -> CostModel { .get("divide_integer-mem-arguments-minimum") .unwrap_or(&30000000000), }), - cpu: TwoArguments::ConstAboveDiagonal(ConstantOrTwoArguments { - constant: *cost_map - .get("divide_integer-cpu-arguments-constant") - .unwrap_or(&30000000000), - model: Box::new(TwoArguments::MultipliedSizes(MultipliedSizes { - intercept: *cost_map - .get("divide_integer-cpu-arguments-model-arguments-intercept") + cpu: match version { + Language::PlutusV1 | Language::PlutusV2 => { + TwoArguments::ConstAboveDiagonal(ConstantOrTwoArguments { + constant: *cost_map + .get("divide_integer-cpu-arguments-constant") + .unwrap_or(&30000000000), + model: Box::new(TwoArguments::MultipliedSizes(MultipliedSizes { + intercept: *cost_map + .get("divide_integer-cpu-arguments-model-arguments-intercept") + .unwrap_or(&30000000000), + slope: *cost_map + .get("divide_integer-cpu-arguments-model-arguments-slope") + .unwrap_or(&30000000000), + })), + }) + } + Language::PlutusV3 => TwoArguments::ConstAboveDiagonalIntoQuadraticXAndY( + *cost_map + .get("divide_integer-cpu-arguments-constant") .unwrap_or(&30000000000), - slope: *cost_map - .get("divide_integer-cpu-arguments-model-arguments-slope") - .unwrap_or(&30000000000), - })), - }), + TwoArgumentsQuadraticFunction { + minimum: *cost_map + .get("divide_integer-cpu-arguments-minimum") + .unwrap_or(&30000000000), + coeff_00: *cost_map + .get("divide_integer-cpu-arguments-c00") + .unwrap_or(&30000000000), + coeff_10: *cost_map + .get("divide_integer-cpu-arguments-c10") + .unwrap_or(&30000000000), + coeff_01: *cost_map + .get("divide_integer-cpu-arguments-c01") + .unwrap_or(&30000000000), + coeff_20: *cost_map + .get("divide_integer-cpu-arguments-c20") + .unwrap_or(&30000000000), + coeff_11: *cost_map + .get("divide_integer-cpu-arguments-c11") + .unwrap_or(&30000000000), + coeff_02: *cost_map + .get("divide_integer-cpu-arguments-c02") + .unwrap_or(&30000000000), + }, + ), + }, }, quotient_integer: CostingFun { mem: TwoArguments::SubtractedSizes(SubtractedSizes { @@ -2545,71 +3217,193 @@ pub fn initialize_cost_model(version: &Language, costs: &[i64]) -> CostModel { .get("quotient_integer-mem-arguments-minimum") .unwrap_or(&30000000000), }), - cpu: TwoArguments::ConstAboveDiagonal(ConstantOrTwoArguments { - constant: *cost_map - .get("quotient_integer-cpu-arguments-constant") - .unwrap_or(&30000000000), - model: Box::new(TwoArguments::MultipliedSizes(MultipliedSizes { - intercept: *cost_map - .get("quotient_integer-cpu-arguments-model-arguments-intercept") + cpu: match version { + Language::PlutusV1 | Language::PlutusV2 => { + TwoArguments::ConstAboveDiagonal(ConstantOrTwoArguments { + constant: *cost_map + .get("quotient_integer-cpu-arguments-constant") + .unwrap_or(&30000000000), + model: Box::new(TwoArguments::MultipliedSizes(MultipliedSizes { + intercept: *cost_map + .get("quotient_integer-cpu-arguments-model-arguments-intercept") + .unwrap_or(&30000000000), + slope: *cost_map + .get("quotient_integer-cpu-arguments-model-arguments-slope") + .unwrap_or(&30000000000), + })), + }) + } + Language::PlutusV3 => TwoArguments::ConstAboveDiagonalIntoQuadraticXAndY( + *cost_map + .get("quotient_integer-cpu-arguments-constant") .unwrap_or(&30000000000), - slope: *cost_map - .get("quotient_integer-cpu-arguments-model-arguments-slope") - .unwrap_or(&30000000000), - })), - }), + TwoArgumentsQuadraticFunction { + minimum: *cost_map + .get("quotient_integer-cpu-arguments-minimum") + .unwrap_or(&30000000000), + coeff_00: *cost_map + .get("quotient_integer-cpu-arguments-c00") + .unwrap_or(&30000000000), + coeff_10: *cost_map + .get("quotient_integer-cpu-arguments-c10") + .unwrap_or(&30000000000), + coeff_01: *cost_map + .get("quotient_integer-cpu-arguments-c01") + .unwrap_or(&30000000000), + coeff_20: *cost_map + .get("quotient_integer-cpu-arguments-c20") + .unwrap_or(&30000000000), + coeff_11: *cost_map + .get("quotient_integer-cpu-arguments-c11") + .unwrap_or(&30000000000), + coeff_02: *cost_map + .get("quotient_integer-cpu-arguments-c02") + .unwrap_or(&30000000000), + }, + ), + }, }, remainder_integer: CostingFun { - mem: TwoArguments::SubtractedSizes(SubtractedSizes { - intercept: *cost_map - .get("remainder_integer-mem-arguments-intercept") - .unwrap_or(&30000000000), - slope: *cost_map - .get("remainder_integer-mem-arguments-slope") - .unwrap_or(&30000000000), - minimum: *cost_map - .get("remainder_integer-mem-arguments-minimum") - .unwrap_or(&30000000000), - }), - cpu: TwoArguments::ConstAboveDiagonal(ConstantOrTwoArguments { - constant: *cost_map - .get("remainder_integer-cpu-arguments-constant") - .unwrap_or(&30000000000), - model: Box::new(TwoArguments::MultipliedSizes(MultipliedSizes { + mem: match version { + Language::PlutusV1 | Language::PlutusV2 => { + TwoArguments::SubtractedSizes(SubtractedSizes { + intercept: *cost_map + .get("remainder_integer-mem-arguments-intercept") + .unwrap_or(&30000000000), + slope: *cost_map + .get("remainder_integer-mem-arguments-slope") + .unwrap_or(&30000000000), + minimum: *cost_map + .get("remainder_integer-mem-arguments-minimum") + .unwrap_or(&30000000000), + }) + } + Language::PlutusV3 => TwoArguments::LinearInY(LinearSize { intercept: *cost_map - .get("remainder_integer-cpu-arguments-model-arguments-intercept") + .get("remainder_integer-mem-arguments-intercept") .unwrap_or(&30000000000), slope: *cost_map - .get("remainder_integer-cpu-arguments-model-arguments-slope") + .get("remainder_integer-mem-arguments-slope") .unwrap_or(&30000000000), - })), - }), + }), + }, + cpu: match version { + Language::PlutusV1 | Language::PlutusV2 => { + TwoArguments::ConstAboveDiagonal(ConstantOrTwoArguments { + constant: *cost_map + .get("remainder_integer-cpu-arguments-constant") + .unwrap_or(&30000000000), + model: Box::new(TwoArguments::MultipliedSizes(MultipliedSizes { + intercept: *cost_map + .get( + "remainder_integer-cpu-arguments-model-arguments-intercept", + ) + .unwrap_or(&30000000000), + slope: *cost_map + .get("remainder_integer-cpu-arguments-model-arguments-slope") + .unwrap_or(&30000000000), + })), + }) + } + Language::PlutusV3 => TwoArguments::ConstAboveDiagonalIntoQuadraticXAndY( + *cost_map + .get("remainder_integer-cpu-arguments-constant") + .unwrap_or(&30000000000), + TwoArgumentsQuadraticFunction { + minimum: *cost_map + .get("remainder_integer-cpu-arguments-minimum") + .unwrap_or(&30000000000), + coeff_00: *cost_map + .get("remainder_integer-cpu-arguments-c00") + .unwrap_or(&30000000000), + coeff_10: *cost_map + .get("remainder_integer-cpu-arguments-c10") + .unwrap_or(&30000000000), + coeff_01: *cost_map + .get("remainder_integer-cpu-arguments-c01") + .unwrap_or(&30000000000), + coeff_20: *cost_map + .get("remainder_integer-cpu-arguments-c20") + .unwrap_or(&30000000000), + coeff_11: *cost_map + .get("remainder_integer-cpu-arguments-c11") + .unwrap_or(&30000000000), + coeff_02: *cost_map + .get("remainder_integer-cpu-arguments-c02") + .unwrap_or(&30000000000), + }, + ), + }, }, mod_integer: CostingFun { - mem: TwoArguments::SubtractedSizes(SubtractedSizes { - intercept: *cost_map - .get("mod_integer-mem-arguments-intercept") - .unwrap_or(&30000000000), - slope: *cost_map - .get("mod_integer-mem-arguments-slope") - .unwrap_or(&30000000000), - minimum: *cost_map - .get("mod_integer-mem-arguments-minimum") - .unwrap_or(&30000000000), - }), - cpu: TwoArguments::ConstAboveDiagonal(ConstantOrTwoArguments { - constant: *cost_map - .get("mod_integer-cpu-arguments-constant") - .unwrap_or(&30000000000), - model: Box::new(TwoArguments::MultipliedSizes(MultipliedSizes { + mem: match version { + Language::PlutusV1 | Language::PlutusV2 => { + TwoArguments::SubtractedSizes(SubtractedSizes { + intercept: *cost_map + .get("mod_integer-mem-arguments-intercept") + .unwrap_or(&30000000000), + slope: *cost_map + .get("mod_integer-mem-arguments-slope") + .unwrap_or(&30000000000), + minimum: *cost_map + .get("mod_integer-mem-arguments-minimum") + .unwrap_or(&30000000000), + }) + } + Language::PlutusV3 => TwoArguments::LinearInY(LinearSize { intercept: *cost_map - .get("mod_integer-cpu-arguments-model-arguments-intercept") + .get("mod_integer-mem-arguments-intercept") .unwrap_or(&30000000000), slope: *cost_map - .get("mod_integer-cpu-arguments-model-arguments-slope") + .get("mod_integer-mem-arguments-slope") .unwrap_or(&30000000000), - })), - }), + }), + }, + cpu: match version { + Language::PlutusV1 | Language::PlutusV2 => { + TwoArguments::ConstAboveDiagonal(ConstantOrTwoArguments { + constant: *cost_map + .get("mod_integer-cpu-arguments-constant") + .unwrap_or(&30000000000), + model: Box::new(TwoArguments::MultipliedSizes(MultipliedSizes { + intercept: *cost_map + .get("mod_integer-cpu-arguments-model-arguments-intercept") + .unwrap_or(&30000000000), + slope: *cost_map + .get("mod_integer-cpu-arguments-model-arguments-slope") + .unwrap_or(&30000000000), + })), + }) + } + Language::PlutusV3 => TwoArguments::ConstAboveDiagonalIntoQuadraticXAndY( + *cost_map + .get("mod_integer-cpu-arguments-constant") + .unwrap_or(&30000000000), + TwoArgumentsQuadraticFunction { + minimum: *cost_map + .get("mod_integer-cpu-arguments-minimum") + .unwrap_or(&30000000000), + coeff_00: *cost_map + .get("mod_integer-cpu-arguments-c00") + .unwrap_or(&30000000000), + coeff_10: *cost_map + .get("mod_integer-cpu-arguments-c10") + .unwrap_or(&30000000000), + coeff_01: *cost_map + .get("mod_integer-cpu-arguments-c01") + .unwrap_or(&30000000000), + coeff_20: *cost_map + .get("mod_integer-cpu-arguments-c20") + .unwrap_or(&30000000000), + coeff_11: *cost_map + .get("mod_integer-cpu-arguments-c11") + .unwrap_or(&30000000000), + coeff_02: *cost_map + .get("mod_integer-cpu-arguments-c02") + .unwrap_or(&30000000000), + }, + ), + }, }, equals_integer: CostingFun { mem: TwoArguments::ConstantCost( @@ -2833,14 +3627,21 @@ pub fn initialize_cost_model(version: &Language, costs: &[i64]) -> CostModel { .get("verify_ed25519_signature-mem-arguments") .unwrap_or(&30000000000), ), - cpu: ThreeArguments::LinearInZ(LinearSize { - intercept: *cost_map - .get("verify_ed25519_signature-cpu-arguments-intercept") - .unwrap_or(&30000000000), - slope: *cost_map - .get("verify_ed25519_signature-cpu-arguments-slope") - .unwrap_or(&30000000000), - }), + cpu: { + let sizes = LinearSize { + intercept: *cost_map + .get("verify_ed25519_signature-cpu-arguments-intercept") + .unwrap_or(&30000000000), + slope: *cost_map + .get("verify_ed25519_signature-cpu-arguments-slope") + .unwrap_or(&30000000000), + }; + + match version { + Language::PlutusV1 | Language::PlutusV2 => ThreeArguments::LinearInZ(sizes), + Language::PlutusV3 => ThreeArguments::LinearInY(sizes), + } + }, }, verify_ecdsa_secp256k1_signature: CostingFun { mem: ThreeArguments::ConstantCost( @@ -3578,6 +4379,7 @@ pub enum TwoArguments { ConstAboveDiagonal(ConstantOrTwoArguments), ConstBelowDiagonal(ConstantOrTwoArguments), QuadraticInY(QuadraticFunction), + ConstAboveDiagonalIntoQuadraticXAndY(i64, TwoArgumentsQuadraticFunction), } impl TwoArguments { @@ -3615,6 +4417,21 @@ impl TwoArguments { } } TwoArguments::QuadraticInY(q) => q.coeff_0 + (q.coeff_1 * y) + (q.coeff_2 * y * y), + TwoArguments::ConstAboveDiagonalIntoQuadraticXAndY(constant, q) => { + if x < y { + *constant + } else { + std::cmp::max( + q.minimum, + q.coeff_00 + + q.coeff_10 * x + + q.coeff_01 * y + + q.coeff_20 * x * x + + q.coeff_11 * x * y + + q.coeff_02 * y * y, + ) + } + } } } } @@ -3720,6 +4537,17 @@ pub struct QuadraticFunction { coeff_2: i64, } +#[derive(Debug, PartialEq, Clone)] +pub struct TwoArgumentsQuadraticFunction { + minimum: i64, + coeff_00: i64, + coeff_10: i64, + coeff_01: i64, + coeff_20: i64, + coeff_11: i64, + coeff_02: i64, +} + #[repr(u8)] pub enum StepKind { Constant = 0, @@ -3801,6 +4629,6 @@ mod tests { let cost_model = initialize_cost_model(&Language::PlutusV2, &costs); - assert_eq!(::default(), cost_model); + assert_eq!(CostModel::v2(), cost_model); } } diff --git a/crates/uplc/src/machine/error.rs b/crates/uplc/src/machine/error.rs index 5e9b9e47..b25b29df 100644 --- a/crates/uplc/src/machine/error.rs +++ b/crates/uplc/src/machine/error.rs @@ -11,11 +11,21 @@ pub enum Error { InvalidStepKind(u8), #[error("Cannot evaluate an open term:\\n\\n{}", .0.to_pretty())] OpenTermEvaluated(Term), - #[error("The provided Plutus code called 'error'.")] + #[error("The validator crashed / exited prematurely")] EvaluationFailure, - #[error("Attempted to instantiate a non-polymorphic term:\n\n{0:#?}")] + #[error( + "Attempted to instantiate a non-polymorphic term\n{:>13} {}", + "Term", + indent(redacted(format!("{:#?}", .0), 10)), + )] NonPolymorphicInstantiation(Value), - #[error("Attempted to apply a non-function:\n\n{0:#?} to argument:\n\n{1:#?}")] + #[error( + "Attempted to apply an argument to a non-function\n{:>13} {}\n{:>13} {}", + "Thing", + indent(redacted(format!("{:#?}", .0), 5)), + "Argument", + indent(redacted(format!("{:#?}", .1), 5)), + )] NonFunctionalApplication(Value, Value), #[error("Attempted to case a non-const:\n\n{0:#?}")] NonConstrScrutinized(Value), @@ -29,9 +39,13 @@ pub enum Error { PairTypeMismatch(Type), #[error("Empty List:\n\n{0:#?}")] EmptyList(Value), - #[error("A builtin received a term argument when something else was expected:\n\n{0}\n\nYou probably forgot to wrap the builtin with a force.")] + #[error( + "A builtin received a term argument when something else was expected:\n\n{0}\n\nYou probably forgot to wrap the builtin with a force." + )] UnexpectedBuiltinTermArgument(Term), - #[error("A builtin expected a term argument, but something else was received:\n\n{0}\n\nYou probably have an extra force wrapped around a builtin")] + #[error( + "A builtin expected a term argument, but something else was received:\n\n{0}\n\nYou probably have an extra force wrapped around a builtin" + )] BuiltinTermArgumentExpected(Term), #[error("Unable to unlift value because it is not a constant:\n\n{0:#?}")] NotAConstant(Value), @@ -49,15 +63,18 @@ pub enum Error { Utf8(#[from] FromUtf8Error), #[error("Out of Bounds\n\nindex: {}\nbytestring: {}\npossible: 0 - {}", .0, hex::encode(.1), .1.len() - 1)] ByteStringOutOfBounds(BigInt, Vec), - #[error("Attempt to consByteString something bigger than one byte {0}")] - ByteStringConsBiggerThanOneByte(BigInt), + #[error("Attempt to consByteString something than isn't a byte between [0-255]: {0}")] + ByteStringConsNotAByte(BigInt), #[error("Divide By Zero\n\n{0} / {1}")] DivideByZero(BigInt, BigInt), #[error("Ed25519S PublicKey should be 32 bytes but it was {0}")] UnexpectedEd25519PublicKeyLength(usize), #[error("Ed25519S Signature should be 64 bytes but it was {0}")] UnexpectedEd25519SignatureLength(usize), - #[error("Failed to deserialise PlutusData using {0}:\n\n{1:#?}")] + #[error( + "Failed to deserialise PlutusData using {0}:\n\n{}", + redacted(format!("{:#?}", .1), 10), + )] DeserialisationError(String, Value), #[error("Integer overflow")] OverflowError, @@ -79,3 +96,21 @@ impl From for Error { Error::K256Error(format!("K256 error: {}", error)) } } + +/// Print only the first n lines of possibly long output, and redact the rest if longer. +fn redacted(s: String, max_rows: usize) -> String { + let rows = s.lines(); + + if rows.count() > max_rows { + let last_line = s.lines().last().unwrap(); + let mut s = s.lines().take(max_rows).collect::>().join("\n"); + s.push_str(&format!("\n ...redacted...\n{last_line}")); + s + } else { + s + } +} + +fn indent(s: String) -> String { + s.lines().collect::>().join(&format!("\n{:>14}", "")) +} diff --git a/crates/uplc/src/machine/runtime.rs b/crates/uplc/src/machine/runtime.rs index 384f932a..c69bd038 100644 --- a/crates/uplc/src/machine/runtime.rs +++ b/crates/uplc/src/machine/runtime.rs @@ -485,8 +485,8 @@ impl DefaultFunction { wrap.try_into().unwrap() } BuiltinSemantics::V2 => { - if *arg1 > 255.into() { - return Err(Error::ByteStringConsBiggerThanOneByte(arg1.clone())); + if *arg1 > 255.into() || *arg1 < 0.into() { + return Err(Error::ByteStringConsNotAByte(arg1.clone())); } arg1.try_into().unwrap() diff --git a/crates/uplc/src/machine/value.rs b/crates/uplc/src/machine/value.rs index 0bab4679..9a301eac 100644 --- a/crates/uplc/src/machine/value.rs +++ b/crates/uplc/src/machine/value.rs @@ -1,14 +1,12 @@ -use std::{collections::VecDeque, mem::size_of, ops::Deref, rc::Rc}; - +use super::{runtime::BuiltinRuntime, Error}; use crate::{ ast::{Constant, NamedDeBruijn, Term, Type}, builtins::DefaultFunction, }; use num_bigint::BigInt; use num_traits::{Signed, ToPrimitive, Zero}; -use pallas_primitives::babbage::{self, PlutusData}; - -use super::{runtime::BuiltinRuntime, Error}; +use pallas_primitives::conway::{self, PlutusData}; +use std::{collections::VecDeque, mem::size_of, ops::Deref, rc::Rc}; pub(super) type Env = Rc>; @@ -398,44 +396,41 @@ pub fn integer_log2(i: BigInt) -> i64 { } } -pub fn from_pallas_bigint(n: &babbage::BigInt) -> BigInt { +pub fn from_pallas_bigint(n: &conway::BigInt) -> BigInt { match n { - babbage::BigInt::Int(i) => i128::from(*i).into(), - babbage::BigInt::BigUInt(bytes) => BigInt::from_bytes_be(num_bigint::Sign::Plus, bytes), - babbage::BigInt::BigNInt(bytes) => { - BigInt::from_bytes_be(num_bigint::Sign::Minus, bytes) - 1 - } + conway::BigInt::Int(i) => i128::from(*i).into(), + conway::BigInt::BigUInt(bytes) => BigInt::from_bytes_be(num_bigint::Sign::Plus, bytes), + conway::BigInt::BigNInt(bytes) => BigInt::from_bytes_be(num_bigint::Sign::Minus, bytes) - 1, } } -pub fn to_pallas_bigint(n: &BigInt) -> babbage::BigInt { +pub fn to_pallas_bigint(n: &BigInt) -> conway::BigInt { if let Some(i) = n.to_i128() { if let Ok(i) = i.try_into() { let pallas_int: pallas_codec::utils::Int = i; - return babbage::BigInt::Int(pallas_int); + return conway::BigInt::Int(pallas_int); } } if n.is_positive() { let (_, bytes) = n.to_bytes_be(); - babbage::BigInt::BigUInt(bytes.into()) + conway::BigInt::BigUInt(bytes.into()) } else { // Note that this would break if n == 0 // BUT n == 0 always fits into 64bits and hence would end up in the first branch. let n: BigInt = n + 1; let (_, bytes) = n.to_bytes_be(); - babbage::BigInt::BigNInt(bytes.into()) + conway::BigInt::BigNInt(bytes.into()) } } #[cfg(test)] mod tests { - use num_bigint::BigInt; - use crate::{ ast::Constant, machine::value::{integer_log2, Value}, }; + use num_bigint::BigInt; #[test] fn to_ex_mem_bigint() { diff --git a/crates/uplc/src/optimize/shrinker.rs b/crates/uplc/src/optimize/shrinker.rs index b30bdf1d..7913ad1e 100644 --- a/crates/uplc/src/optimize/shrinker.rs +++ b/crates/uplc/src/optimize/shrinker.rs @@ -1,18 +1,14 @@ -use std::{cmp::Ordering, iter, ops::Neg, rc::Rc, vec}; - -use indexmap::IndexMap; -use itertools::Itertools; - -use pallas_primitives::babbage::{BigInt, PlutusData}; - +use super::interner::CodeGenInterner; use crate::{ ast::{Constant, Data, Name, NamedDeBruijn, Program, Term, Type}, builder::{CONSTR_FIELDS_EXPOSER, CONSTR_INDEX_EXPOSER}, builtins::DefaultFunction, machine::cost_model::ExBudget, }; - -use super::interner::CodeGenInterner; +use indexmap::IndexMap; +use itertools::Itertools; +use pallas_primitives::conway::{BigInt, PlutusData}; +use std::{cmp::Ordering, iter, ops::Neg, rc::Rc, vec}; #[derive(Eq, Hash, PartialEq, Clone, Debug, PartialOrd)] pub enum ScopePath { @@ -1981,18 +1977,15 @@ fn pop_lambdas_and_get_names(term: &Term) -> (Vec>, &Term) #[cfg(test)] mod tests { - - use pallas_primitives::babbage::{BigInt, PlutusData}; - use pretty_assertions::assert_eq; - + use super::NO_INLINE; use crate::{ ast::{Constant, Data, Name, NamedDeBruijn, Program, Term}, builder::{CONSTR_FIELDS_EXPOSER, CONSTR_INDEX_EXPOSER}, builtins::DefaultFunction, optimize::interner::CodeGenInterner, }; - - use super::NO_INLINE; + use pallas_primitives::conway::{BigInt, PlutusData}; + use pretty_assertions::assert_eq; fn compare_optimization( mut expected: Program, diff --git a/crates/uplc/src/parser.rs b/crates/uplc/src/parser.rs index 87c97087..24c96e64 100644 --- a/crates/uplc/src/parser.rs +++ b/crates/uplc/src/parser.rs @@ -1,16 +1,13 @@ -use std::{ops::Neg, rc::Rc, str::FromStr}; - use crate::{ ast::{Constant, Name, Program, Term, Type}, builtins::DefaultFunction, - machine::runtime::Compressable, - machine::value::to_pallas_bigint, + machine::{runtime::Compressable, value::to_pallas_bigint}, }; - use interner::Interner; use num_bigint::BigInt; use pallas_primitives::alonzo::PlutusData; use peg::{error::ParseError, str::LineCol}; +use std::{ops::Neg, rc::Rc, str::FromStr}; pub mod interner; @@ -195,10 +192,10 @@ peg::parser! { = n:$(['0'..='9']+) {? n.parse().or(Err("usize")) } rule number() -> isize - = n:$("-"* ['0'..='9']+) {? n.parse().or(Err("isize")) } + = n:$(("-"/"+")* ['0'..='9']+) {? n.parse().or(Err("isize")) } rule big_number() -> BigInt - = n:$("-"* ['0'..='9']+) {? (if n.starts_with('-') { BigInt::parse_bytes(&n.as_bytes()[1..], 10).map(|i| i.neg()) } else { BigInt::parse_bytes(n.as_bytes(), 10) }).ok_or("BigInt") } + = n:$(("-"/"+")* ['0'..='9']+) {? (if n.starts_with('-') { BigInt::parse_bytes(&n.as_bytes()[1..], 10).map(|i| i.neg()) } else { BigInt::parse_bytes(n.as_bytes(), 10) }).ok_or("BigInt") } rule boolean() -> bool = b:$("True" / "False") { b == "True" } @@ -375,11 +372,12 @@ peg::parser! { #[cfg(test)] mod tests { + use crate::{ + ast::{Constant, Name, Program, Term, Type, Unique}, + builtins::DefaultFunction, + }; use num_bigint::BigInt; use pretty_assertions::assert_eq; - - use crate::ast::{Constant, Name, Program, Term, Type, Unique}; - use crate::builtins::DefaultFunction; use std::rc::Rc; #[test] diff --git a/crates/uplc/src/pretty.rs b/crates/uplc/src/pretty.rs index 1da5c6be..8f989f17 100644 --- a/crates/uplc/src/pretty.rs +++ b/crates/uplc/src/pretty.rs @@ -1,10 +1,12 @@ use crate::{ ast::{Constant, Program, Term, Type}, flat::Binder, - machine::runtime::{convert_tag_to_constr, Compressable}, - machine::value::from_pallas_bigint, + machine::{ + runtime::{convert_tag_to_constr, Compressable}, + value::from_pallas_bigint, + }, }; -use pallas_primitives::babbage::{Constr, PlutusData}; +use pallas_primitives::conway::{Constr, PlutusData}; use pretty::RcDoc; use std::ascii::escape_default; diff --git a/crates/uplc/src/tx.rs b/crates/uplc/src/tx.rs index 3cd6457c..b01e9963 100644 --- a/crates/uplc/src/tx.rs +++ b/crates/uplc/src/tx.rs @@ -1,20 +1,16 @@ -use pallas_primitives::{ - babbage::{CostMdls, MintedTx, Redeemer, TransactionInput, TransactionOutput}, - Fragment, -}; -use pallas_traverse::{Era, MultiEraTx}; - -use error::Error; -pub use phase_one::eval_phase_one; -pub use script_context::{ResolvedInput, SlotConfig}; - use crate::{ ast::{DeBruijn, Program}, machine::cost_model::ExBudget, PlutusData, }; - -use eval::get_script_and_datum_lookup_table; +use error::Error; +use pallas_primitives::{ + conway::{CostMdls, MintedTx, Redeemer, TransactionInput, TransactionOutput}, + Fragment, +}; +use pallas_traverse::{Era, MultiEraTx}; +pub use phase_one::{eval_phase_one, redeemer_tag_to_string}; +pub use script_context::{DataLookupTable, ResolvedInput, SlotConfig}; pub mod error; pub mod eval; @@ -40,7 +36,7 @@ pub fn eval_phase_two( ) -> Result, Error> { let redeemers = tx.transaction_witness_set.redeemer.as_ref(); - let lookup_table = get_script_and_datum_lookup_table(tx, utxos); + let lookup_table = DataLookupTable::from_transaction(tx, utxos); if run_phase_one { // subset of phase 1 check on redeemers and scripts @@ -53,14 +49,21 @@ pub fn eval_phase_two( let mut remaining_budget = *initial_budget.unwrap_or(&ExBudget::default()); - for redeemer in rs.iter() { - with_redeemer(redeemer); + for (redeemer_key, redeemer_value) in rs.iter() { + let redeemer = Redeemer { + tag: redeemer_key.tag, + index: redeemer_key.index, + data: redeemer_value.data.clone(), + ex_units: redeemer_value.ex_units, + }; + + with_redeemer(&redeemer); let redeemer = eval::eval_redeemer( tx, utxos, slot_config, - redeemer, + &redeemer, &lookup_table, cost_mdls, &remaining_budget, @@ -93,7 +96,8 @@ pub fn eval_phase_two_raw( run_phase_one: bool, with_redeemer: fn(&Redeemer) -> (), ) -> Result>, Error> { - let multi_era_tx = MultiEraTx::decode_for_era(Era::Babbage, tx_bytes) + let multi_era_tx = MultiEraTx::decode_for_era(Era::Conway, tx_bytes) + .or_else(|_| MultiEraTx::decode_for_era(Era::Babbage, tx_bytes)) .or_else(|_| MultiEraTx::decode_for_era(Era::Alonzo, tx_bytes))?; let cost_mdls = CostMdls::decode_fragment(cost_mdls_bytes)?; @@ -119,7 +123,7 @@ pub fn eval_phase_two_raw( }; match multi_era_tx { - MultiEraTx::Babbage(tx) => { + MultiEraTx::Conway(tx) => { match eval_phase_two( &tx, &utxos, @@ -136,15 +140,12 @@ pub fn eval_phase_two_raw( Err(err) => Err(err), } } - // MultiEraTx::AlonzoCompatible(tx, _) => match eval_tx(&tx, &utxos, &sc) { - // Ok(redeemers) => Ok(redeemers - // .iter() - // .map(|r| r.encode_fragment().unwrap()) - // .collect()), - // Err(_) => Err(()), - // }, - // TODO: I probably did a mistake here with using MintedTx which is only compatible with Babbage tx. - _ => todo!("Wrong era. Please use babbage"), + _ => unimplemented!( + r#"The transaction is serialized in an old era format. Because we're slightly lazy to +maintain backward compatibility with every possible transaction format AND, because +those formats are mostly forward-compatible, you are kindly expected to provide a +transaction in a format suitable for the Conway era."# + ), } } diff --git a/crates/uplc/src/tx/error.rs b/crates/uplc/src/tx/error.rs index 5189bdba..c7803e45 100644 --- a/crates/uplc/src/tx/error.rs +++ b/crates/uplc/src/tx/error.rs @@ -2,62 +2,103 @@ use crate::{ machine::{self, cost_model::ExBudget}, TransactionInput, }; +use pallas_primitives::conway::Language; #[derive(thiserror::Error, Debug, miette::Diagnostic)] pub enum Error { #[error("{0}")] Address(#[from] pallas_addresses::Error), - #[error("Only shelley reward addresses can be a part of withdrawals")] + #[error("only shelley reward addresses can be a part of withdrawals")] BadWithdrawalAddress, #[error("{0}")] FlatDecode(#[from] pallas_codec::flat::de::Error), #[error("{0}")] FragmentDecode(#[from] pallas_primitives::Error), - #[error("{}\n\n{:#?}\n\n{}", .0, .1, .2.join("\n"))] + #[error("{}{}", .0, .2.iter() + .map(|trace| { + format!( + "\n{:>13} {}", + "Trace", + if trace.contains("\n") { + trace.lines() + .enumerate() + .map(|(ix, row)| { + if ix == 0 { + row.to_string() + } else { + format!("{:>13} {}", "", + row + ) + } + }) + .collect::>() + .join("\n") + } else { + trace.to_string() + } + ) + }) + .collect::>() + .join("") + .as_str() + )] Machine(machine::Error, ExBudget, Vec), - #[error("Native script can't be executed in phase-two")] + + #[error("native script can't be executed in phase-two")] NativeScriptPhaseTwo, - #[error("Can't eval without redeemers")] + #[error("can't eval without redeemers")] NoRedeemers, - #[error("Mismatch in required redeemers: {} {}", .missing.join(" "), .extra.join(" "))] + #[error( + "missing and/or unexpected validator(s) and/or redeemer(s)\n{:>13} {}\n{:>13} {}", + "Missing", + if .missing.is_empty() { "ø".to_string() } else { .missing.join(&format!("\n{:>14}", "")) }, + "Unexpected", + if .extra.is_empty() { "ø".to_string() } else { .extra.join(&format!("\n{:>14}", "")) }, + )] RequiredRedeemersMismatch { missing: Vec, extra: Vec, }, - #[error("Extraneous redeemer")] + #[error("extraneous redeemer")] ExtraneousRedeemer, - #[error("Resolved Input not found.")] + #[error("resolved Input not found")] ResolvedInputNotFound(TransactionInput), - #[error("A key hash cannot be the hash of a script.")] - ScriptKeyHash, - #[error("PlutusV1 cost model not found.")] - V1CostModelNotFound, - #[error("PlutusV2 cost model not found.")] - V2CostModelNotFound, - #[error("Wrong era, Please use Babbage or Alonzo: {0}")] + #[error("redeemer points to a non-script withdrawal")] + NonScriptWithdrawal, + #[error("stake credential points to a non-script withdrawal")] + NonScriptStakeCredential, + #[error("the designated procedure defines no guardrail script")] + NoGuardrailScriptForProcedure, + #[error("cost model not found for language\n{:>13} {:?}", "Language", .0)] + CostModelNotFound(Language), + #[error("unsupported era, please use Conway\n{:>13} {0}", "Decoder error")] WrongEra(#[from] pallas_codec::minicbor::decode::Error), - #[error("Byron address not allowed in Plutus.")] + #[error("byron address not allowed when PlutusV2 scripts are present")] ByronAddressNotAllowed, - #[error("Inline datum not allowed in PlutusV1.")] + #[error("inline datum not allowed when PlutusV1 scripts are present")] InlineDatumNotAllowed, - #[error("Script and input reference not allowed in PlutusV1.")] + #[error("script and input reference not allowed in PlutusV1")] ScriptAndInputRefNotAllowed, - #[error("Address doesn't contain a payment credential.")] + #[error("address doesn't contain a payment credential")] NoPaymentCredential, - #[error("Missing required datum: {}", hash)] + #[error("missing required datum\n{:>13} {}", "Datum", hash)] MissingRequiredDatum { hash: String }, - #[error("Missing required script: {}", hash)] + #[error("missing required script\n{:>13} {}", "Script", hash)] MissingRequiredScript { hash: String }, - #[error("Missing required inline datum or datum hash in script input.")] + #[error("missing required inline datum or datum hash in script input")] MissingRequiredInlineDatumOrHash, - #[error("Only stake deregistration and delegation are valid certificate script purposes.")] - OnlyStakeDeregAndDelegAllowed, - #[error("Redeemer ({}, {}): {}", tag, index, err)] + #[error("redeemer points to an unsupported certificate type")] + UnsupportedCertificateType, + #[error("failed script execution\n{:>13} {}", format!("{}[{}]", tag, index), err)] RedeemerError { tag: String, index: u32, err: Box, }, - #[error("Failed to apply parameters to Plutus script.")] + #[error("missing script for redeemer")] + MissingScriptForRedeemer, + #[error("failed to apply parameters to Plutus script")] ApplyParamsError, + #[error("validity start or end too far in the past")] + SlotTooFarInThePast { oldest_allowed: u64 }, } diff --git a/crates/uplc/src/tx/eval.rs b/crates/uplc/src/tx/eval.rs index 60306b55..fecc78a4 100644 --- a/crates/uplc/src/tx/eval.rs +++ b/crates/uplc/src/tx/eval.rs @@ -1,712 +1,19 @@ use super::{ - script_context::{ - ResolvedInput, ScriptContext, ScriptPurpose, SlotConfig, TimeRange, TxInInfo, TxInfo, - TxInfoV1, TxInfoV2, TxOut, - }, - to_plutus_data::{MintValue, ToPlutusData}, + script_context::{find_script, ResolvedInput, ScriptContext, SlotConfig, TxInfo}, + to_plutus_data::ToPlutusData, Error, }; use crate::{ ast::{FakeNamedDeBruijn, NamedDeBruijn, Program}, machine::cost_model::ExBudget, + tx::{ + phase_one::redeemer_tag_to_string, + script_context::{DataLookupTable, ScriptVersion, TxInfoV1, TxInfoV2, TxInfoV3}, + }, PlutusData, }; -use itertools::Itertools; -use pallas_addresses::{Address, ScriptHash, StakePayload}; -use pallas_codec::utils::{KeyValuePairs, MaybeIndefArray}; -use pallas_crypto::hash::Hash; -use pallas_primitives::{ - babbage::{ - Certificate, CostMdls, DatumHash, DatumOption, ExUnits, Mint, MintedTx, NativeScript, - PlutusV1Script, PlutusV2Script, PolicyId, PseudoScript, Redeemer, RedeemerTag, - RewardAccount, StakeCredential, TransactionInput, TransactionOutput, Value, Withdrawals, - }, - conway::Language, -}; -use pallas_traverse::{ComputeHash, OriginalHash}; -use std::{cmp::Ordering, collections::HashMap, convert::TryInto, ops::Deref, vec}; - -pub fn slot_to_begin_posix_time(slot: u64, sc: &SlotConfig) -> u64 { - let ms_after_begin = (slot - sc.zero_slot) * sc.slot_length as u64; - sc.zero_time + ms_after_begin -} - -fn slot_range_to_posix_time_range(slot_range: TimeRange, sc: &SlotConfig) -> TimeRange { - TimeRange { - lower_bound: slot_range - .lower_bound - .map(|lower_bound| slot_to_begin_posix_time(lower_bound, sc)), - upper_bound: slot_range - .upper_bound - .map(|upper_bound| slot_to_begin_posix_time(upper_bound, sc)), - } -} - -fn redeemer_tag_to_string(redeemer_tag: &RedeemerTag) -> String { - match redeemer_tag { - RedeemerTag::Spend => "Spend".to_string(), - RedeemerTag::Mint => "Mint".to_string(), - RedeemerTag::Cert => "Cert".to_string(), - RedeemerTag::Reward => "Reward".to_string(), - } -} - -fn sort_mint(mint: &Mint) -> Mint { - let mut mint_vec = vec![]; - - for m in mint.deref().iter().sorted() { - mint_vec.push(( - m.0, - KeyValuePairs::Indef(m.1.deref().clone().into_iter().sorted().clone().collect()), - )); - } - - KeyValuePairs::Indef(mint_vec) -} - -fn sort_value(value: &Value) -> Value { - match value { - Value::Coin(_) => value.clone(), - Value::Multiasset(coin, ma) => { - let mut ma_vec = vec![]; - - for m in ma.deref().iter().sorted() { - ma_vec.push(( - m.0, - KeyValuePairs::Indef( - m.1.deref().clone().into_iter().sorted().clone().collect(), - ), - )); - } - - Value::Multiasset(*coin, KeyValuePairs::Indef(ma_vec)) - } - } -} - -fn sort_tx_out_value(tx_output: &TransactionOutput) -> TransactionOutput { - match tx_output { - TransactionOutput::Legacy(output) => { - let mut new_output = output.clone(); - new_output.amount = sort_value(&output.amount); - TransactionOutput::Legacy(new_output) - } - TransactionOutput::PostAlonzo(output) => { - let mut new_output = output.clone(); - new_output.value = sort_value(&output.value); - TransactionOutput::PostAlonzo(new_output) - } - } -} - -#[derive(Debug, PartialEq, Clone)] -pub enum ScriptVersion { - Native(NativeScript), - V1(PlutusV1Script), - V2(PlutusV2Script), -} - -#[derive(Debug, PartialEq, Clone)] -enum ExecutionPurpose { - WithDatum(ScriptVersion, PlutusData), // Spending - NoDatum(ScriptVersion), // Minting, Wdrl, DCert -} - -pub struct DataLookupTable { - datum: HashMap, - scripts: HashMap, -} - -impl DataLookupTable { - pub fn scripts(&self) -> HashMap { - self.scripts.clone() - } -} - -pub fn get_tx_in_info_v1( - inputs: &[TransactionInput], - utxos: &[ResolvedInput], -) -> Result, Error> { - inputs - .iter() - .sorted() - .map(|input| { - let utxo = match utxos.iter().find(|utxo| utxo.input == *input) { - Some(resolved) => resolved, - None => return Err(Error::ResolvedInputNotFound(input.clone())), - }; - let address = Address::from_bytes(match &utxo.output { - TransactionOutput::Legacy(output) => output.address.as_ref(), - TransactionOutput::PostAlonzo(output) => output.address.as_ref(), - }) - .unwrap(); - - match address { - Address::Byron(_) => { - return Err(Error::ByronAddressNotAllowed); - } - Address::Stake(_) => { - return Err(Error::NoPaymentCredential); - } - _ => {} - }; - - match &utxo.output { - TransactionOutput::Legacy(_) => {} - TransactionOutput::PostAlonzo(output) => { - if let Some(DatumOption::Data(_)) = output.datum_option { - return Err(Error::InlineDatumNotAllowed); - } - - if output.script_ref.is_some() { - return Err(Error::ScriptAndInputRefNotAllowed); - } - } - } - - Ok(TxInInfo { - out_ref: utxo.input.clone(), - resolved: TxOut::V1(sort_tx_out_value(&utxo.output)), - }) - }) - .collect() -} - -fn get_tx_in_info_v2( - inputs: &[TransactionInput], - utxos: &[ResolvedInput], -) -> Result, Error> { - inputs - .iter() - .sorted() - .map(|input| { - let utxo = match utxos.iter().find(|utxo| utxo.input == *input) { - Some(resolved) => resolved, - None => return Err(Error::ResolvedInputNotFound(input.clone())), - }; - let address = Address::from_bytes(match &utxo.output { - TransactionOutput::Legacy(output) => output.address.as_ref(), - TransactionOutput::PostAlonzo(output) => output.address.as_ref(), - }) - .unwrap(); - - match address { - Address::Byron(_) => { - return Err(Error::ByronAddressNotAllowed); - } - Address::Stake(_) => { - return Err(Error::NoPaymentCredential); - } - _ => {} - }; - - Ok(TxInInfo { - out_ref: utxo.input.clone(), - resolved: TxOut::V2(sort_tx_out_value(&utxo.output)), - }) - }) - .collect() -} - -fn get_script_purpose( - redeemer: &Redeemer, - inputs: &[TransactionInput], - mint: &Option, - dcert: &Option>, - wdrl: &Option, -) -> Result { - // sorting according to specs section 4.1: https://hydra.iohk.io/build/18583827/download/1/alonzo-changes.pdf - let tag = redeemer.tag.clone(); - let index = redeemer.index; - match tag { - RedeemerTag::Mint => { - // sort lexical by policy id - let mut policy_ids = mint - .as_ref() - .unwrap_or(&KeyValuePairs::Indef(vec![])) - .iter() - .map(|(policy_id, _)| *policy_id) - .collect::>(); - policy_ids.sort(); - match policy_ids.get(index as usize) { - Some(policy_id) => Ok(ScriptPurpose::Minting(*policy_id)), - None => Err(Error::ExtraneousRedeemer), - } - } - RedeemerTag::Spend => { - // sort lexical by tx_hash and index - let mut inputs = inputs.to_vec(); - inputs.sort(); - match inputs.get(index as usize) { - Some(input) => Ok(ScriptPurpose::Spending(input.clone())), - None => Err(Error::ExtraneousRedeemer), - } - } - RedeemerTag::Reward => { - // sort lexical by reward account - let mut reward_accounts = wdrl - .as_ref() - .unwrap_or(&KeyValuePairs::Indef(vec![])) - .iter() - .map(|(racnt, _)| racnt.clone()) - .collect::>(); - reward_accounts.sort(); - let reward_account = match reward_accounts.get(index as usize) { - Some(ra) => ra.clone(), - None => return Err(Error::ExtraneousRedeemer), - }; - let address = Address::from_bytes(&reward_account)?; - let credential = match address { - Address::Stake(stake_address) => match stake_address.payload() { - StakePayload::Script(script_hash) => StakeCredential::Scripthash(*script_hash), - StakePayload::Stake(_) => { - return Err(Error::ScriptKeyHash); - } - }, - _ => return Err(Error::BadWithdrawalAddress), - }; - Ok(ScriptPurpose::Rewarding(credential)) - } - RedeemerTag::Cert => { - // sort by order given in the tx (just take it as it is basically) - match dcert - .as_ref() - .unwrap_or(&MaybeIndefArray::Indef(vec![])) - .get(index as usize) - { - Some(cert) => Ok(ScriptPurpose::Certifying(cert.clone())), - None => Err(Error::ExtraneousRedeemer), - } - } - } -} - -fn get_tx_info_v1( - tx: &MintedTx, - utxos: &[ResolvedInput], - slot_config: &SlotConfig, -) -> Result { - let body = tx.transaction_body.clone(); - - if body.reference_inputs.is_some() { - return Err(Error::ScriptAndInputRefNotAllowed); - } - - let inputs = get_tx_in_info_v1(&body.inputs, utxos)?; - - let outputs = body - .outputs - .iter() - .cloned() - .map(|output| TxOut::V1(sort_tx_out_value(&output.into()))) - .collect(); - - let fee = Value::Coin(body.fee); - - let mint = sort_mint(&body.mint.clone().unwrap_or(KeyValuePairs::Indef(vec![]))); - - let dcert = body.certificates.clone().unwrap_or_default(); - - let wdrl = body - .withdrawals - .clone() - .unwrap_or(KeyValuePairs::Indef(vec![])) - .deref() - .clone() - .into_iter() - .sorted() - .map(|(reward_account, coin)| (Address::from_bytes(&reward_account).unwrap(), coin)) - .collect_vec(); - - let valid_range = slot_range_to_posix_time_range( - TimeRange { - lower_bound: body.validity_interval_start, - upper_bound: body.ttl, - }, - slot_config, - ); - - let signatories = body - .required_signers - .clone() - .unwrap_or_default() - .into_iter() - .sorted() - .collect(); - - let data = tx - .transaction_witness_set - .plutus_data - .as_ref() - .unwrap_or(&vec![]) - .iter() - .map(|d| (d.original_hash(), d.clone().unwrap())) - .sorted() - .collect(); - - let id = tx.transaction_body.original_hash(); - - Ok(TxInfo::V1(TxInfoV1 { - inputs, - outputs, - fee, - mint: MintValue { mint_value: mint }, - dcert, - wdrl, - valid_range, - signatories, - data, - id, - })) -} - -fn get_tx_info_v2( - tx: &MintedTx, - utxos: &[ResolvedInput], - slot_config: &SlotConfig, -) -> Result { - let body = tx.transaction_body.clone(); - - let inputs = get_tx_in_info_v2(&body.inputs, utxos)?; - - let reference_inputs = - get_tx_in_info_v2(&body.reference_inputs.clone().unwrap_or_default(), utxos)?; - - let outputs = body - .outputs - .iter() - .cloned() - .map(|output| TxOut::V2(sort_tx_out_value(&output.into()))) - .collect(); - - let fee = Value::Coin(body.fee); - - let mint = sort_mint(&body.mint.clone().unwrap_or(KeyValuePairs::Indef(vec![]))); - - let dcert = body.certificates.clone().unwrap_or_default(); - - let wdrl = KeyValuePairs::Indef( - body.withdrawals - .clone() - .unwrap_or(KeyValuePairs::Indef(vec![])) - .deref() - .clone() - .into_iter() - .sorted() - .map(|(reward_account, coin)| (Address::from_bytes(&reward_account).unwrap(), coin)) - .collect(), - ); - - let valid_range = slot_range_to_posix_time_range( - TimeRange { - lower_bound: body.validity_interval_start, - upper_bound: body.ttl, - }, - slot_config, - ); - - let signatories = body - .required_signers - .clone() - .unwrap_or_default() - .into_iter() - .sorted() - .collect(); - - let redeemers = KeyValuePairs::Indef( - tx.transaction_witness_set - .redeemer - .as_ref() - .unwrap_or(&MaybeIndefArray::Indef(vec![])) - .iter() - .sorted_by(|a, b| -> Ordering { - if a.tag == b.tag { - a.index.cmp(&b.index) - } else { - match (&a.tag, &b.tag) { - (RedeemerTag::Spend, _) => Ordering::Greater, - (RedeemerTag::Mint, RedeemerTag::Spend) => Ordering::Less, - (RedeemerTag::Mint, _) => Ordering::Greater, - (RedeemerTag::Cert, RedeemerTag::Reward) => Ordering::Greater, - (RedeemerTag::Cert, _) => Ordering::Less, - (RedeemerTag::Reward, _) => Ordering::Less, - } - } - }) - .map(|r| { - ( - get_script_purpose( - r, - &tx.transaction_body.inputs, - &tx.transaction_body.mint, - &tx.transaction_body.certificates, - &tx.transaction_body.withdrawals, - ) - .unwrap(), - r.clone(), - ) - }) - .collect(), - ); - - let data = KeyValuePairs::Indef( - tx.transaction_witness_set - .plutus_data - .as_ref() - .unwrap_or(&vec![]) - .iter() - .map(|d| (d.original_hash(), d.clone().unwrap())) - .sorted() - .collect(), - ); - - let id = tx.transaction_body.original_hash(); - - Ok(TxInfo::V2(TxInfoV2 { - inputs, - reference_inputs, - outputs, - fee, - mint: MintValue { mint_value: mint }, - dcert, - wdrl, - valid_range, - signatories, - redeemers, - data, - id, - })) -} - -fn get_execution_purpose( - utxos: &[ResolvedInput], - script_purpose: &ScriptPurpose, - lookup_table: &DataLookupTable, -) -> Result { - match script_purpose { - ScriptPurpose::Minting(policy_id) => { - let policy_id_array: [u8; 28] = policy_id.to_vec().try_into().unwrap(); - let hash = Hash::from(policy_id_array); - - let script = match lookup_table.scripts.get(&hash) { - Some(s) => s.clone(), - None => { - return Err(Error::MissingRequiredScript { - hash: hash.to_string(), - }); - } - }; - Ok(ExecutionPurpose::NoDatum(script)) - } - ScriptPurpose::Spending(out_ref) => { - let utxo = match utxos.iter().find(|utxo| utxo.input == *out_ref) { - Some(resolved) => resolved, - None => return Err(Error::ResolvedInputNotFound(out_ref.clone())), - }; - match &utxo.output { - TransactionOutput::Legacy(output) => { - let address = Address::from_bytes(&output.address).unwrap(); - match address { - Address::Shelley(shelley_address) => { - let hash = shelley_address.payment().as_hash(); - let script = match lookup_table.scripts.get(hash) { - Some(s) => s.clone(), - None => { - return Err(Error::MissingRequiredScript { - hash: hash.to_string(), - }); - } - }; - - let datum_hash = match &output.datum_hash { - Some(hash) => hash, - None => return Err(Error::MissingRequiredInlineDatumOrHash), - }; - - let datum = match lookup_table.datum.get(datum_hash) { - Some(d) => d.clone(), - None => { - return Err(Error::MissingRequiredDatum { - hash: datum_hash.to_string(), - }); - } - }; - - Ok(ExecutionPurpose::WithDatum(script, datum)) - } - _ => Err(Error::ScriptKeyHash), - } - } - TransactionOutput::PostAlonzo(output) => { - let address = Address::from_bytes(&output.address).unwrap(); - match address { - Address::Shelley(shelley_address) => { - let hash = shelley_address.payment().as_hash(); - let script = match lookup_table.scripts.get(hash) { - Some(s) => s.clone(), - None => { - return Err(Error::MissingRequiredScript { - hash: hash.to_string(), - }); - } - }; - - let datum = match &output.datum_option { - Some(DatumOption::Hash(hash)) => { - match lookup_table.datum.get(hash) { - Some(d) => d.clone(), - None => { - return Err(Error::MissingRequiredDatum { - hash: hash.to_string(), - }); - } - } - } - Some(DatumOption::Data(data)) => data.0.clone(), - _ => return Err(Error::MissingRequiredInlineDatumOrHash), - }; - - Ok(ExecutionPurpose::WithDatum(script, datum)) - } - _ => Err(Error::ScriptKeyHash), - } - } - } - } - ScriptPurpose::Rewarding(stake_credential) => { - let script_hash = match stake_credential { - StakeCredential::Scripthash(hash) => *hash, - _ => return Err(Error::ScriptKeyHash), - }; - - let script = match lookup_table.scripts.get(&script_hash) { - Some(s) => s.clone(), - None => { - return Err(Error::MissingRequiredScript { - hash: script_hash.to_string(), - }); - } - }; - - Ok(ExecutionPurpose::NoDatum(script)) - } - ScriptPurpose::Certifying(cert) => match cert { - Certificate::StakeDeregistration(stake_credential) => { - let script_hash = match stake_credential { - StakeCredential::Scripthash(hash) => *hash, - _ => return Err(Error::ScriptKeyHash), - }; - - let script = match lookup_table.scripts.get(&script_hash) { - Some(s) => s.clone(), - None => { - return Err(Error::MissingRequiredScript { - hash: script_hash.to_string(), - }); - } - }; - - Ok(ExecutionPurpose::NoDatum(script)) - } - Certificate::StakeDelegation(stake_credential, _) => { - let script_hash = match stake_credential { - StakeCredential::Scripthash(hash) => *hash, - _ => return Err(Error::ScriptKeyHash), - }; - - let script = match lookup_table.scripts.get(&script_hash) { - Some(s) => s.clone(), - None => { - return Err(Error::MissingRequiredScript { - hash: script_hash.to_string(), - }); - } - }; - - Ok(ExecutionPurpose::NoDatum(script)) - } - _ => Err(Error::OnlyStakeDeregAndDelegAllowed), - }, - } -} - -pub fn get_script_and_datum_lookup_table( - tx: &MintedTx, - utxos: &[ResolvedInput], -) -> DataLookupTable { - let mut datum = HashMap::new(); - let mut scripts = HashMap::new(); - - // discovery in witness set - - let plutus_data_witnesses = tx - .transaction_witness_set - .plutus_data - .clone() - .unwrap_or_default(); - - let scripts_native_witnesses = tx - .transaction_witness_set - .native_script - .clone() - .unwrap_or_default(); - - let scripts_v1_witnesses = tx - .transaction_witness_set - .plutus_v1_script - .clone() - .unwrap_or_default(); - - let scripts_v2_witnesses = tx - .transaction_witness_set - .plutus_v2_script - .clone() - .unwrap_or_default(); - - for plutus_data in plutus_data_witnesses.iter() { - datum.insert(plutus_data.original_hash(), plutus_data.clone().unwrap()); - } - - for script in scripts_native_witnesses.iter() { - scripts.insert( - script.compute_hash(), - ScriptVersion::Native(script.clone().unwrap()), - ); - } - - for script in scripts_v1_witnesses.iter() { - scripts.insert(script.compute_hash(), ScriptVersion::V1(script.clone())); - } - - for script in scripts_v2_witnesses.iter() { - scripts.insert(script.compute_hash(), ScriptVersion::V2(script.clone())); - } - - // discovery in utxos (script ref) - - for utxo in utxos.iter() { - match &utxo.output { - TransactionOutput::Legacy(_) => {} - TransactionOutput::PostAlonzo(output) => { - if let Some(script) = &output.script_ref { - match &script.0 { - PseudoScript::NativeScript(ns) => { - scripts.insert(ns.compute_hash(), ScriptVersion::Native(ns.clone())); - } - PseudoScript::PlutusV1Script(v1) => { - scripts.insert(v1.compute_hash(), ScriptVersion::V1(v1.clone())); - } - PseudoScript::PlutusV2Script(v2) => { - scripts.insert(v2.compute_hash(), ScriptVersion::V2(v2.clone())); - } - } - } - } - } - } - - DataLookupTable { datum, scripts } -} +use pallas_codec::utils::Bytes; +use pallas_primitives::conway::{CostMdls, CostModel, ExUnits, Language, MintedTx, Redeemer}; pub fn eval_redeemer( tx: &MintedTx, @@ -717,228 +24,129 @@ pub fn eval_redeemer( cost_mdls_opt: Option<&CostMdls>, initial_budget: &ExBudget, ) -> Result { - let result = || { - let purpose = get_script_purpose( - redeemer, - &tx.transaction_body.inputs, - &tx.transaction_body.mint, - &tx.transaction_body.certificates, - &tx.transaction_body.withdrawals, - )?; + fn do_eval_redeemer( + cost_mdl_opt: Option<&CostModel>, + initial_budget: &ExBudget, + lang: &Language, + datum: Option, + redeemer: &Redeemer, + tx_info: TxInfo, + program: Program, + ) -> Result { + let script_context = tx_info + .into_script_context(redeemer, datum.as_ref()) + .expect("couldn't create script context from transaction?"); - let execution_purpose: ExecutionPurpose = - get_execution_purpose(utxos, &purpose, lookup_table)?; + let program = match script_context { + ScriptContext::V1V2 { .. } => if let Some(datum) = datum { + program.apply_data(datum) + } else { + program + } + .apply_data(redeemer.data.clone()) + .apply_data(script_context.to_plutus_data()), - match execution_purpose { - ExecutionPurpose::WithDatum(script_version, datum) => match script_version { - ScriptVersion::V1(script) => { - let tx_info = get_tx_info_v1(tx, utxos, slot_config)?; - let script_context = ScriptContext { tx_info, purpose }; + // FIXME: Temporary, but needed until https://github.com/aiken-lang/aiken/pull/977 + // is implemented. + ScriptContext::V3 { .. } => if let Some(datum) = datum { + program.apply_data(datum) + } else { + program + } + .apply_data(redeemer.data.clone()) + .apply_data(script_context.to_plutus_data()), + }; - let program: Program = { - let mut buffer = Vec::new(); + let mut eval_result = if let Some(costs) = cost_mdl_opt { + program.eval_as(lang, costs, Some(initial_budget)) + } else { + program.eval_version(ExBudget::default(), lang) + }; - let prog = Program::::from_cbor(&script.0, &mut buffer)?; + let cost = eval_result.cost(); + let logs = eval_result.logs(); - prog.into() - }; - - let program = program - .apply_data(datum) - .apply_data(redeemer.data.clone()) - .apply_data(script_context.to_plutus_data()); - - let mut eval_result = if let Some(cost_mdls) = cost_mdls_opt { - let costs = if let Some(costs) = &cost_mdls.plutus_v1 { - costs - } else { - return Err(Error::V1CostModelNotFound); - }; - - program.eval_as(&Language::PlutusV1, costs, Some(initial_budget)) - } else { - program.eval_version(ExBudget::default(), &Language::PlutusV1) - }; - - let cost = eval_result.cost(); - let logs = eval_result.logs(); - - match eval_result.result() { - Ok(_) => (), - Err(err) => return Err(Error::Machine(err, cost, logs)), - } - - let new_redeemer = Redeemer { - tag: redeemer.tag.clone(), - index: redeemer.index, - data: redeemer.data.clone(), - ex_units: ExUnits { - mem: cost.mem as u32, - steps: cost.cpu as u64, - }, - }; - - Ok(new_redeemer) - } - ScriptVersion::V2(script) => { - let tx_info = get_tx_info_v2(tx, utxos, slot_config)?; - let script_context = ScriptContext { tx_info, purpose }; - - let program: Program = { - let mut buffer = Vec::new(); - - let prog = Program::::from_cbor(&script.0, &mut buffer)?; - - prog.into() - }; - - let program = program - .apply_data(datum) - .apply_data(redeemer.data.clone()) - .apply_data(script_context.to_plutus_data()); - - let mut eval_result = if let Some(cost_mdls) = cost_mdls_opt { - let costs = if let Some(costs) = &cost_mdls.plutus_v2 { - costs - } else { - return Err(Error::V2CostModelNotFound); - }; - - program.eval_as(&Language::PlutusV2, costs, Some(initial_budget)) - } else { - program.eval(ExBudget::default()) - }; - - let cost = eval_result.cost(); - let logs = eval_result.logs(); - - match eval_result.result() { - Ok(_) => (), - Err(err) => return Err(Error::Machine(err, cost, logs)), - } - - let new_redeemer = Redeemer { - tag: redeemer.tag.clone(), - index: redeemer.index, - data: redeemer.data.clone(), - ex_units: ExUnits { - mem: cost.mem as u32, - steps: cost.cpu as u64, - }, - }; - - Ok(new_redeemer) - } - ScriptVersion::Native(_) => Err(Error::NativeScriptPhaseTwo), - }, - ExecutionPurpose::NoDatum(script_version) => match script_version { - ScriptVersion::V1(script) => { - let tx_info = get_tx_info_v1(tx, utxos, slot_config)?; - let script_context = ScriptContext { tx_info, purpose }; - - let program: Program = { - let mut buffer = Vec::new(); - - let prog = Program::::from_cbor(&script.0, &mut buffer)?; - - prog.into() - }; - - let program = program - .apply_data(redeemer.data.clone()) - .apply_data(script_context.to_plutus_data()); - - let mut eval_result = if let Some(cost_mdls) = cost_mdls_opt { - let costs = if let Some(costs) = &cost_mdls.plutus_v1 { - costs - } else { - return Err(Error::V1CostModelNotFound); - }; - - program.eval_as(&Language::PlutusV1, costs, Some(initial_budget)) - } else { - program.eval_version(ExBudget::default(), &Language::PlutusV1) - }; - - let cost = eval_result.cost(); - let logs = eval_result.logs(); - - match eval_result.result() { - Ok(_) => (), - Err(err) => return Err(Error::Machine(err, cost, logs)), - } - - let new_redeemer = Redeemer { - tag: redeemer.tag.clone(), - index: redeemer.index, - data: redeemer.data.clone(), - ex_units: ExUnits { - mem: cost.mem as u32, - steps: cost.cpu as u64, - }, - }; - - Ok(new_redeemer) - } - ScriptVersion::V2(script) => { - let tx_info = get_tx_info_v2(tx, utxos, slot_config)?; - let script_context = ScriptContext { tx_info, purpose }; - - let program: Program = { - let mut buffer = Vec::new(); - - let prog = Program::::from_cbor(&script.0, &mut buffer)?; - - prog.into() - }; - - let program = program - .apply_data(redeemer.data.clone()) - .apply_data(script_context.to_plutus_data()); - - let mut eval_result = if let Some(cost_mdls) = cost_mdls_opt { - let costs = if let Some(costs) = &cost_mdls.plutus_v2 { - costs - } else { - return Err(Error::V2CostModelNotFound); - }; - - program.eval_as(&Language::PlutusV2, costs, Some(initial_budget)) - } else { - program.eval(ExBudget::default()) - }; - - let cost = eval_result.cost(); - let logs = eval_result.logs(); - - match eval_result.result() { - Ok(_) => (), - Err(err) => return Err(Error::Machine(err, cost, logs)), - } - - let new_redeemer = Redeemer { - tag: redeemer.tag.clone(), - index: redeemer.index, - data: redeemer.data.clone(), - ex_units: ExUnits { - mem: cost.mem as u32, - steps: cost.cpu as u64, - }, - }; - - Ok(new_redeemer) - } - ScriptVersion::Native(_) => Err(Error::NativeScriptPhaseTwo), - }, + match eval_result.result() { + Ok(_) => (), + Err(err) => return Err(Error::Machine(err, cost, logs)), } + + let new_redeemer = Redeemer { + tag: redeemer.tag, + index: redeemer.index, + data: redeemer.data.clone(), + ex_units: ExUnits { + mem: cost.mem as u64, + steps: cost.cpu as u64, + }, + }; + + Ok(new_redeemer) + } + + let program = |script: Bytes| { + let mut buffer = Vec::new(); + Program::::from_cbor(&script, &mut buffer) + .map(Into::>::into) }; - match result() { - Ok(r) => Ok(r), - Err(err) => Err(Error::RedeemerError { - tag: redeemer_tag_to_string(&redeemer.tag), - index: redeemer.index, - err: Box::new(err), - }), + match find_script(redeemer, tx, utxos, lookup_table)? { + (ScriptVersion::Native(_), _) => Err(Error::NativeScriptPhaseTwo), + + (ScriptVersion::V1(script), datum) => do_eval_redeemer( + cost_mdls_opt + .map(|cost_mdls| { + cost_mdls + .plutus_v1 + .as_ref() + .ok_or(Error::CostModelNotFound(Language::PlutusV2)) + }) + .transpose()?, + initial_budget, + &Language::PlutusV1, + datum, + redeemer, + TxInfoV1::from_transaction(tx, utxos, slot_config)?, + program(script.0)?, + ), + + (ScriptVersion::V2(script), datum) => do_eval_redeemer( + cost_mdls_opt + .map(|cost_mdls| { + cost_mdls + .plutus_v2 + .as_ref() + .ok_or(Error::CostModelNotFound(Language::PlutusV2)) + }) + .transpose()?, + initial_budget, + &Language::PlutusV2, + datum, + redeemer, + TxInfoV2::from_transaction(tx, utxos, slot_config)?, + program(script.0)?, + ), + + (ScriptVersion::V3(script), datum) => do_eval_redeemer( + cost_mdls_opt + .map(|cost_mdls| { + cost_mdls + .plutus_v3 + .as_ref() + .ok_or(Error::CostModelNotFound(Language::PlutusV3)) + }) + .transpose()?, + initial_budget, + &Language::PlutusV3, + datum, + redeemer, + TxInfoV3::from_transaction(tx, utxos, slot_config)?, + program(script.0)?, + ), } + .map_err(|err| Error::RedeemerError { + tag: redeemer_tag_to_string(&redeemer.tag), + index: redeemer.index, + err: Box::new(err), + }) } diff --git a/crates/uplc/src/tx/phase_one.rs b/crates/uplc/src/tx/phase_one.rs index 5adb5e04..2f0282bd 100644 --- a/crates/uplc/src/tx/phase_one.rs +++ b/crates/uplc/src/tx/phase_one.rs @@ -1,23 +1,18 @@ use super::{ error::Error, - eval::{DataLookupTable, ScriptVersion}, - script_context::{ResolvedInput, ScriptPurpose}, + script_context::{sort_voters, DataLookupTable, ResolvedInput, ScriptPurpose, ScriptVersion}, }; +use crate::tx::script_context::sort_reward_accounts; +use itertools::Itertools; use pallas_addresses::{Address, ScriptHash, ShelleyPaymentPart, StakePayload}; -use pallas_codec::utils::{KeyValuePairs, MaybeIndefArray}; -use pallas_primitives::babbage::{ - Certificate, MintedTx, PolicyId, RedeemerTag, RewardAccount, StakeCredential, TransactionOutput, +use pallas_codec::utils::Nullable; +use pallas_primitives::conway::{ + Certificate, GovAction, MintedTx, PolicyId, RedeemerTag, RedeemersKey, RewardAccount, + StakeCredential, TransactionOutput, Voter, }; use std::collections::HashMap; -// TODO: include in pallas eventually? -#[derive(Debug, PartialEq, Clone)] -struct RedeemerPtr { - tag: RedeemerTag, - index: u32, -} - -type AlonzoScriptsNeeded = Vec<(ScriptPurpose, ScriptHash)>; +type ScriptsNeeded = Vec<(ScriptPurpose, ScriptHash)>; // subset of phase-1 ledger checks related to scripts pub fn eval_phase_one( @@ -35,7 +30,7 @@ pub fn eval_phase_one( } pub fn validate_missing_scripts( - needed: &AlonzoScriptsNeeded, + needed: &ScriptsNeeded, txscripts: HashMap, ) -> Result<(), Error> { let received_hashes = txscripts.keys().copied().collect::>(); @@ -46,32 +41,23 @@ pub fn validate_missing_scripts( .clone() .into_iter() .filter(|x| !received_hashes.contains(x)) - .map(|x| format!("[Missing (sh: {x})]")) + .map(|x| x.to_string()) .collect(); let extra: Vec<_> = received_hashes .into_iter() .filter(|x| !needed_hashes.contains(x)) - .map(|x| format!("[Extraneous (sh: {x:?})]")) + .map(|x| x.to_string()) .collect(); if !missing.is_empty() || !extra.is_empty() { - let missing_errors = missing.join(" "); - let extra_errors = extra.join(" "); - - unreachable!( - "Mismatch in required scripts: {} {}", - missing_errors, extra_errors - ); + return Err(Error::RequiredRedeemersMismatch { missing, extra }); } Ok(()) } -pub fn scripts_needed( - tx: &MintedTx, - utxos: &[ResolvedInput], -) -> Result { +pub fn scripts_needed(tx: &MintedTx, utxos: &[ResolvedInput]) -> Result { let mut needed = Vec::new(); let txb = tx.transaction_body.clone(); @@ -91,61 +77,119 @@ pub fn scripts_needed( if let Address::Shelley(a) = address { if let ShelleyPaymentPart::Script(h) = a.payment() { - spend.push((ScriptPurpose::Spending(input.clone()), *h)); + spend.push((ScriptPurpose::Spending(input.clone(), ()), *h)); } } } let mut reward = txb .withdrawals - .as_ref() - .unwrap_or(&KeyValuePairs::Indef(vec![])) - .iter() - .filter_map(|(acnt, _)| { - let address = Address::from_bytes(acnt).unwrap(); + .as_deref() + .map(|w| { + w.iter() + .filter_map(|(acnt, _)| { + let address = Address::from_bytes(acnt).unwrap(); - if let Address::Stake(a) = address { - if let StakePayload::Script(h) = a.payload() { - let cred = StakeCredential::Scripthash(*h); - return Some((ScriptPurpose::Rewarding(cred), *h)); - } - } + if let Address::Stake(a) = address { + if let StakePayload::Script(h) = a.payload() { + let cred = StakeCredential::Scripthash(*h); + return Some((ScriptPurpose::Rewarding(cred), *h)); + } + } - None + None + }) + .collect::() }) - .collect::(); + .unwrap_or_default(); let mut cert = txb .certificates - .clone() - .unwrap_or_default() - .iter() - .filter_map(|cert| { - // only Dereg and Deleg certs can require scripts - match cert { - Certificate::StakeDeregistration(StakeCredential::Scripthash(h)) => { - Some((ScriptPurpose::Certifying(cert.clone()), *h)) - } - Certificate::StakeDelegation(StakeCredential::Scripthash(h), _) => { - Some((ScriptPurpose::Certifying(cert.clone()), *h)) - } - _ => None, - } + .as_deref() + .map(|m| { + m.iter() + .enumerate() + .filter_map(|(ix, cert)| match cert { + Certificate::StakeDeregistration(StakeCredential::Scripthash(h)) + | Certificate::UnReg(StakeCredential::Scripthash(h), _) + | Certificate::VoteDeleg(StakeCredential::Scripthash(h), _) + | Certificate::VoteRegDeleg(StakeCredential::Scripthash(h), _, _) + | Certificate::StakeVoteDeleg(StakeCredential::Scripthash(h), _, _) + | Certificate::StakeRegDeleg(StakeCredential::Scripthash(h), _, _) + | Certificate::StakeVoteRegDeleg(StakeCredential::Scripthash(h), _, _, _) + | Certificate::RegDRepCert(StakeCredential::Scripthash(h), _, _) + | Certificate::UnRegDRepCert(StakeCredential::Scripthash(h), _) + | Certificate::UpdateDRepCert(StakeCredential::Scripthash(h), _) + | Certificate::AuthCommitteeHot(StakeCredential::Scripthash(h), _) + | Certificate::ResignCommitteeCold(StakeCredential::Scripthash(h), _) + | Certificate::StakeDelegation(StakeCredential::Scripthash(h), _) => { + Some((ScriptPurpose::Certifying(ix, cert.clone()), *h)) + } + + _ => None, + }) + .collect::() }) - .collect::(); + .unwrap_or_default(); let mut mint = txb .mint - .as_ref() - .unwrap_or(&KeyValuePairs::Indef(vec![])) - .iter() - .map(|(policy_id, _)| (ScriptPurpose::Minting(*policy_id), *policy_id)) - .collect::(); + .as_deref() + .map(|m| { + m.iter() + .map(|(policy_id, _)| (ScriptPurpose::Minting(*policy_id), *policy_id)) + .collect::() + }) + .unwrap_or_default(); + + let mut propose = txb + .proposal_procedures + .as_deref() + .map(|m| { + m.iter() + .enumerate() + .filter_map(|(ix, procedure)| match procedure.gov_action { + GovAction::ParameterChange(_, _, Nullable::Some(hash)) => { + Some((ScriptPurpose::Proposing(ix, procedure.clone()), hash)) + } + GovAction::TreasuryWithdrawals(_, Nullable::Some(hash)) => { + Some((ScriptPurpose::Proposing(ix, procedure.clone()), hash)) + } + GovAction::HardForkInitiation(..) + | GovAction::Information + | GovAction::NewConstitution(..) + | GovAction::TreasuryWithdrawals(..) + | GovAction::ParameterChange(..) + | GovAction::NoConfidence(..) + | GovAction::UpdateCommittee(..) => None, + }) + .collect::() + }) + .unwrap_or_default(); + + let mut voting = txb + .voting_procedures + .as_deref() + .map(|m| { + m.iter() + .filter_map(|(voter, _)| match voter { + Voter::ConstitutionalCommitteeScript(hash) | Voter::DRepScript(hash) => { + Some((ScriptPurpose::Voting(voter.clone()), *hash)) + } + Voter::ConstitutionalCommitteeKey(_) + | Voter::DRepKey(_) + | Voter::StakePoolKey(_) => None, + }) + .collect::() + }) + .unwrap_or_default(); needed.append(&mut spend); needed.append(&mut reward); needed.append(&mut cert); needed.append(&mut mint); + needed.append(&mut propose); + needed.append(&mut voting); Ok(needed) } @@ -153,58 +197,58 @@ pub fn scripts_needed( /// hasExactSetOfRedeemers in Ledger Spec, but we pass `txscripts` directly pub fn has_exact_set_of_redeemers( tx: &MintedTx, - needed: &AlonzoScriptsNeeded, + needed: &ScriptsNeeded, tx_scripts: HashMap, ) -> Result<(), Error> { let mut redeemers_needed = Vec::new(); for (script_purpose, script_hash) in needed { - let redeemer_ptr = build_redeemer_ptr(tx, script_purpose)?; + let redeemer_key = build_redeemer_key(tx, script_purpose)?; let script = tx_scripts.get(script_hash); - if let (Some(ptr), Some(script)) = (redeemer_ptr, script) { + if let (Some(key), Some(script)) = (redeemer_key, script) { match script { ScriptVersion::V1(_) => { - redeemers_needed.push((ptr, script_purpose.clone(), *script_hash)) + redeemers_needed.push((key, script_purpose.clone(), *script_hash)) } ScriptVersion::V2(_) => { - redeemers_needed.push((ptr, script_purpose.clone(), *script_hash)) + redeemers_needed.push((key, script_purpose.clone(), *script_hash)) + } + ScriptVersion::V3(_) => { + redeemers_needed.push((key, script_purpose.clone(), *script_hash)) } ScriptVersion::Native(_) => (), } } } - let wits_redeemer_ptrs: Vec = tx + let wits_redeemer_keys: Vec<&RedeemersKey> = tx .transaction_witness_set .redeemer - .as_ref() - .unwrap_or(&MaybeIndefArray::Indef(vec![])) - .iter() - .map(|r| RedeemerPtr { - tag: r.tag.clone(), - index: r.index, - }) - .collect(); + .as_deref() + .map(|m| m.iter().map(|(k, _)| k).collect()) + .unwrap_or_default(); - let needed_redeemer_ptrs: Vec = + let needed_redeemer_keys: Vec = redeemers_needed.iter().map(|x| x.0.clone()).collect(); let missing: Vec<_> = redeemers_needed .into_iter() - .filter(|x| !wits_redeemer_ptrs.contains(&x.0)) + .filter(|x| !wits_redeemer_keys.contains(&&x.0)) .map(|x| { format!( - "[Missing (redeemer_ptr: {:?}, script_purpose: {:?}, script_hash: {})]", - x.0, x.1, x.2, + "{}[{:?}] -> {}", + redeemer_tag_to_string(&x.0.tag), + x.0.index, + x.2 ) }) .collect(); - let extra: Vec<_> = wits_redeemer_ptrs + let extra: Vec<_> = wits_redeemer_keys .into_iter() - .filter(|x| !needed_redeemer_ptrs.contains(x)) - .map(|x| format!("[Extraneous (redeemer_ptr: {x:?})]")) + .filter(|x| !needed_redeemer_keys.contains(x)) + .map(|x| format!("{}[{:?}]", redeemer_tag_to_string(&x.tag), x.index)) .collect(); if !missing.is_empty() || !extra.is_empty() { @@ -217,66 +261,62 @@ pub fn has_exact_set_of_redeemers( /// builds a redeemer pointer (tag, index) from a script purpose by setting the tag /// according to the type of the script purpose, and the index according to the /// placement of script purpose inside its container. -fn build_redeemer_ptr( +fn build_redeemer_key( tx: &MintedTx, script_purpose: &ScriptPurpose, -) -> Result, Error> { +) -> Result, Error> { let tx_body = tx.transaction_body.clone(); match script_purpose { ScriptPurpose::Minting(hash) => { - let mut policy_ids = tx_body + let policy_ids: Vec<&PolicyId> = tx_body .mint - .as_ref() - .unwrap_or(&KeyValuePairs::Indef(vec![])) - .iter() - .map(|(policy_id, _)| *policy_id) - .collect::>(); + .as_deref() + .map(|m| m.iter().map(|(policy_id, _)| policy_id).sorted().collect()) + .unwrap_or_default(); - policy_ids.sort(); + let redeemer_key = + policy_ids + .iter() + .position(|x| x == &hash) + .map(|index| RedeemersKey { + tag: RedeemerTag::Mint, + index: index as u32, + }); - let maybe_idx = policy_ids.iter().position(|x| x == hash); - - match maybe_idx { - Some(idx) => Ok(Some(RedeemerPtr { - tag: RedeemerTag::Mint, - index: idx as u32, - })), - None => Ok(None), - } + Ok(redeemer_key) } - ScriptPurpose::Spending(txin) => { - let mut inputs = tx_body.inputs.to_vec(); - inputs.sort_by( - |i_a, i_b| match i_a.transaction_id.cmp(&i_b.transaction_id) { - std::cmp::Ordering::Less => std::cmp::Ordering::Less, - std::cmp::Ordering::Equal => i_a.index.cmp(&i_b.index), - std::cmp::Ordering::Greater => std::cmp::Ordering::Greater, - }, - ); - let maybe_idx = inputs.iter().position(|x| x == txin); - - match maybe_idx { - Some(idx) => Ok(Some(RedeemerPtr { + ScriptPurpose::Spending(txin, ()) => { + let redeemer_key = tx_body + .inputs + .iter() + .sorted_by( + |i_a, i_b| match i_a.transaction_id.cmp(&i_b.transaction_id) { + std::cmp::Ordering::Less => std::cmp::Ordering::Less, + std::cmp::Ordering::Equal => i_a.index.cmp(&i_b.index), + std::cmp::Ordering::Greater => std::cmp::Ordering::Greater, + }, + ) + .position(|x| x == txin) + .map(|index| RedeemersKey { tag: RedeemerTag::Spend, - index: idx as u32, - })), - None => Ok(None), - } + index: index as u32, + }); + + Ok(redeemer_key) } + ScriptPurpose::Rewarding(racnt) => { - let mut reward_accounts = tx_body + let mut reward_accounts: Vec<&RewardAccount> = tx_body .withdrawals - .as_ref() - .unwrap_or(&KeyValuePairs::Indef(vec![])) - .iter() - .map(|(acnt, _)| acnt.clone()) - .collect::>(); + .as_deref() + .map(|m| m.iter().map(|(acnt, _)| acnt).collect()) + .unwrap_or_default(); - reward_accounts.sort(); + reward_accounts.sort_by(|acnt_a, acnt_b| sort_reward_accounts(acnt_a, acnt_b)); - let mut maybe_idx = None; + let mut redeemer_key = None; for (idx, x) in reward_accounts.iter().enumerate() { let cred = match Address::from_bytes(x).unwrap() { @@ -288,33 +328,72 @@ fn build_redeemer_ptr( }; if cred == Some(racnt.to_owned()) { - maybe_idx = Some(idx); + redeemer_key = Some(RedeemersKey { + tag: RedeemerTag::Reward, + index: idx as u32, + }); } } - match maybe_idx { - Some(idx) => Ok(Some(RedeemerPtr { - tag: RedeemerTag::Reward, - index: idx as u32, - })), - None => Ok(None), - } + Ok(redeemer_key) } - ScriptPurpose::Certifying(d) => { - let maybe_idx = tx_body - .certificates - .as_ref() - .unwrap_or(&MaybeIndefArray::Indef(vec![])) - .iter() - .position(|x| x == d); - match maybe_idx { - Some(idx) => Ok(Some(RedeemerPtr { + ScriptPurpose::Certifying(_, d) => { + let redeemer_key = tx_body + .certificates + .as_deref() + .map(|m| m.iter().position(|x| x == d)) + .unwrap_or_default() + .map(|index| RedeemersKey { tag: RedeemerTag::Cert, - index: idx as u32, - })), - None => Ok(None), - } + index: index as u32, + }); + + Ok(redeemer_key) + } + + ScriptPurpose::Voting(v) => { + let redeemer_key = tx_body + .voting_procedures + .as_deref() + .map(|m| { + m.iter() + .sorted_by(|(a, _), (b, _)| sort_voters(a, b)) + .position(|x| &x.0 == v) + }) + .unwrap_or_default() + .map(|index| RedeemersKey { + tag: RedeemerTag::Vote, + index: index as u32, + }); + + Ok(redeemer_key) + } + + ScriptPurpose::Proposing(_, procedure) => { + let redeemer_key = tx_body + .proposal_procedures + .as_deref() + .map(|m| m.iter().position(|x| x == procedure)) + .unwrap_or_default() + .map(|index| RedeemersKey { + tag: RedeemerTag::Propose, + index: index as u32, + }); + + Ok(redeemer_key) } } } + +pub fn redeemer_tag_to_string(redeemer_tag: &RedeemerTag) -> String { + match redeemer_tag { + RedeemerTag::Spend => "Spend", + RedeemerTag::Mint => "Mint", + RedeemerTag::Reward => "Withdraw", + RedeemerTag::Cert => "Publish", + RedeemerTag::Propose => "Propose", + RedeemerTag::Vote => "Vote", + } + .to_string() +} diff --git a/crates/uplc/src/tx/script_context.rs b/crates/uplc/src/tx/script_context.rs index 840480da..992b86e2 100644 --- a/crates/uplc/src/tx/script_context.rs +++ b/crates/uplc/src/tx/script_context.rs @@ -1,12 +1,23 @@ -use pallas_addresses::Address; -use pallas_codec::utils::KeyValuePairs; -use pallas_crypto::hash::Hash; -use pallas_primitives::babbage::{ - AddrKeyhash, Certificate, Coin, DatumHash, PlutusData, PolicyId, Redeemer, StakeCredential, - TransactionInput, TransactionOutput, Value, +use super::{to_plutus_data::MintValue, Error}; +use itertools::Itertools; +use pallas_addresses::{Address, Network, StakePayload}; +use pallas_codec::utils::{ + Bytes, KeyValuePairs, NonEmptyKeyValuePairs, NonEmptySet, Nullable, PositiveCoin, }; - -use super::to_plutus_data::MintValue; +use pallas_crypto::hash::Hash; +use pallas_primitives::{ + alonzo, + conway::{ + AddrKeyhash, Certificate, Coin, DatumHash, DatumOption, GovAction, GovActionId, Mint, + MintedTransactionBody, MintedTransactionOutput, MintedTx, MintedWitnessSet, NativeScript, + PlutusData, PlutusV1Script, PlutusV2Script, PlutusV3Script, PolicyId, + PostAlonzoTransactionOutput, ProposalProcedure, PseudoDatumOption, PseudoScript, Redeemer, + RedeemerTag, RedeemersKey, RequiredSigners, RewardAccount, ScriptHash, StakeCredential, + TransactionInput, TransactionOutput, Value, Voter, VotingProcedure, + }, +}; +use pallas_traverse::{ComputeHash, OriginalHash}; +use std::{cmp::Ordering, collections::HashMap, ops::Deref}; #[derive(Debug, PartialEq, Clone)] pub struct ResolvedInput { @@ -17,45 +28,228 @@ pub struct ResolvedInput { #[derive(Debug, PartialEq, Clone)] pub struct TxInInfo { pub out_ref: TransactionInput, - pub resolved: TxOut, -} -#[derive(Debug, PartialEq, Clone)] -pub enum TxOut { - V1(TransactionOutput), - V2(TransactionOutput), + pub resolved: TransactionOutput, } +pub fn output_address(output: &TransactionOutput) -> Address { + match output { + TransactionOutput::Legacy(x) => Address::from_bytes(&x.address).unwrap(), + TransactionOutput::PostAlonzo(x) => Address::from_bytes(&x.address).unwrap(), + } +} + +pub fn output_datum(output: &TransactionOutput) -> Option { + match output { + TransactionOutput::Legacy(x) => x.datum_hash.map(DatumOption::Hash), + TransactionOutput::PostAlonzo(x) => x.datum_option.clone(), + } +} + +/// The ScriptPurpose is part of the ScriptContext is the case of Plutus V1 and V2. +/// It is superseded by the ScriptInfo in PlutusV3. #[derive(Debug, PartialEq, Eq, Clone)] -pub enum ScriptPurpose { +pub enum ScriptInfo { Minting(PolicyId), - Spending(TransactionInput), + Spending(TransactionInput, T), Rewarding(StakeCredential), - Certifying(Certificate), + Certifying(usize, Certificate), + Voting(Voter), + Proposing(usize, ProposalProcedure), +} + +pub type ScriptPurpose = ScriptInfo<()>; + +impl ScriptPurpose { + pub fn into_script_info(self, datum: T) -> ScriptInfo { + match self { + Self::Minting(policy_id) => ScriptInfo::Minting(policy_id), + Self::Spending(transaction_output, ()) => { + ScriptInfo::Spending(transaction_output, datum) + } + Self::Rewarding(stake_credential) => ScriptInfo::Rewarding(stake_credential), + Self::Certifying(ix, certificate) => ScriptInfo::Certifying(ix, certificate), + Self::Voting(voter) => ScriptInfo::Voting(voter), + Self::Proposing(ix, procedure) => ScriptInfo::Proposing(ix, procedure), + } + } +} + +#[derive(Debug, PartialEq, Clone)] +pub enum ScriptVersion { + Native(NativeScript), + V1(PlutusV1Script), + V2(PlutusV2Script), + V3(PlutusV3Script), +} + +pub struct DataLookupTable { + datum: HashMap, + scripts: HashMap, +} + +impl DataLookupTable { + pub fn from_transaction(tx: &MintedTx, utxos: &[ResolvedInput]) -> DataLookupTable { + let mut datum = HashMap::new(); + let mut scripts = HashMap::new(); + + // discovery in witness set + + let plutus_data_witnesses = tx + .transaction_witness_set + .plutus_data + .clone() + .map(|s| s.to_vec()) + .unwrap_or_default(); + + let scripts_native_witnesses = tx + .transaction_witness_set + .native_script + .clone() + .map(|s| s.to_vec()) + .unwrap_or_default(); + + let scripts_v1_witnesses = tx + .transaction_witness_set + .plutus_v1_script + .clone() + .map(|s| s.to_vec()) + .unwrap_or_default(); + + let scripts_v2_witnesses = tx + .transaction_witness_set + .plutus_v2_script + .clone() + .map(|s| s.to_vec()) + .unwrap_or_default(); + + let scripts_v3_witnesses = tx + .transaction_witness_set + .plutus_v3_script + .clone() + .map(|s| s.to_vec()) + .unwrap_or_default(); + + for plutus_data in plutus_data_witnesses.iter() { + datum.insert(plutus_data.original_hash(), plutus_data.clone().unwrap()); + } + + for script in scripts_native_witnesses.iter() { + scripts.insert( + script.compute_hash(), + ScriptVersion::Native(script.clone().unwrap()), + ); + } + + for script in scripts_v1_witnesses.iter() { + scripts.insert(script.compute_hash(), ScriptVersion::V1(script.clone())); + } + + for script in scripts_v2_witnesses.iter() { + scripts.insert(script.compute_hash(), ScriptVersion::V2(script.clone())); + } + + for script in scripts_v3_witnesses.iter() { + scripts.insert(script.compute_hash(), ScriptVersion::V3(script.clone())); + } + + // discovery in utxos (script ref) + + for utxo in utxos.iter() { + match &utxo.output { + TransactionOutput::Legacy(_) => {} + TransactionOutput::PostAlonzo(output) => { + if let Some(script) = &output.script_ref { + match &script.0 { + PseudoScript::NativeScript(ns) => { + scripts + .insert(ns.compute_hash(), ScriptVersion::Native(ns.clone())); + } + PseudoScript::PlutusV1Script(v1) => { + scripts.insert(v1.compute_hash(), ScriptVersion::V1(v1.clone())); + } + PseudoScript::PlutusV2Script(v2) => { + scripts.insert(v2.compute_hash(), ScriptVersion::V2(v2.clone())); + } + PseudoScript::PlutusV3Script(v3) => { + scripts.insert(v3.compute_hash(), ScriptVersion::V3(v3.clone())); + } + } + } + } + } + } + + DataLookupTable { datum, scripts } + } +} + +impl DataLookupTable { + pub fn scripts(&self) -> HashMap { + self.scripts.clone() + } } #[derive(Debug, PartialEq, Clone)] pub struct TxInfoV1 { pub inputs: Vec, - pub outputs: Vec, + pub outputs: Vec, pub fee: Value, pub mint: MintValue, - pub dcert: Vec, - pub wdrl: Vec<(Address, Coin)>, + pub certificates: Vec, + pub withdrawals: Vec<(Address, Coin)>, pub valid_range: TimeRange, pub signatories: Vec, pub data: Vec<(DatumHash, PlutusData)>, + pub redeemers: KeyValuePairs, pub id: Hash<32>, } +impl TxInfoV1 { + pub fn from_transaction( + tx: &MintedTx, + utxos: &[ResolvedInput], + slot_config: &SlotConfig, + ) -> Result { + if tx.transaction_body.reference_inputs.is_some() { + return Err(Error::ScriptAndInputRefNotAllowed); + } + + let inputs = get_tx_in_info_v1(&tx.transaction_body.inputs, utxos)?; + let certificates = get_certificates_info(&tx.transaction_body.certificates); + let withdrawals = + KeyValuePairs::from(get_withdrawals_info(&tx.transaction_body.withdrawals)); + let mint = get_mint_info(&tx.transaction_body.mint); + + let redeemers = get_redeemers_info( + &tx.transaction_witness_set, + script_purpose_builder(&inputs[..], &mint, &certificates, &withdrawals, &[], &[]), + )?; + + Ok(TxInfo::V1(TxInfoV1 { + inputs, + outputs: get_outputs_info(&tx.transaction_body.outputs[..]), + fee: Value::Coin(get_fee_info(&tx.transaction_body.fee)), + mint, + certificates, + withdrawals: withdrawals.into(), + valid_range: get_validity_range_info(&tx.transaction_body, slot_config)?, + signatories: get_signatories_info(&tx.transaction_body.required_signers), + data: get_data_info(&tx.transaction_witness_set), + redeemers, + id: tx.transaction_body.original_hash(), + })) + } +} + #[derive(Debug, PartialEq, Clone)] pub struct TxInfoV2 { pub inputs: Vec, pub reference_inputs: Vec, - pub outputs: Vec, + pub outputs: Vec, pub fee: Value, pub mint: MintValue, - pub dcert: Vec, - pub wdrl: KeyValuePairs, + pub certificates: Vec, + pub withdrawals: KeyValuePairs, pub valid_range: TimeRange, pub signatories: Vec, pub redeemers: KeyValuePairs, @@ -63,16 +257,221 @@ pub struct TxInfoV2 { pub id: Hash<32>, } +impl TxInfoV2 { + pub fn from_transaction( + tx: &MintedTx, + utxos: &[ResolvedInput], + slot_config: &SlotConfig, + ) -> Result { + let inputs = get_tx_in_info_v2(&tx.transaction_body.inputs, utxos)?; + let certificates = get_certificates_info(&tx.transaction_body.certificates); + let withdrawals = + KeyValuePairs::from(get_withdrawals_info(&tx.transaction_body.withdrawals)); + let mint = get_mint_info(&tx.transaction_body.mint); + + let redeemers = get_redeemers_info( + &tx.transaction_witness_set, + script_purpose_builder(&inputs[..], &mint, &certificates, &withdrawals, &[], &[]), + )?; + + let reference_inputs = tx + .transaction_body + .reference_inputs + .clone() + .map(|refs| get_tx_in_info_v2(&refs[..], utxos)) + .transpose()? + .unwrap_or_default(); + + Ok(TxInfo::V2(TxInfoV2 { + inputs, + reference_inputs, + outputs: get_outputs_info(&tx.transaction_body.outputs[..]), + fee: Value::Coin(get_fee_info(&tx.transaction_body.fee)), + mint, + certificates, + withdrawals, + valid_range: get_validity_range_info(&tx.transaction_body, slot_config)?, + signatories: get_signatories_info(&tx.transaction_body.required_signers), + data: KeyValuePairs::from(get_data_info(&tx.transaction_witness_set)), + redeemers, + id: tx.transaction_body.original_hash(), + })) + } +} + +#[derive(Debug, PartialEq, Clone)] +pub struct TxInfoV3 { + pub inputs: Vec, + pub reference_inputs: Vec, + pub outputs: Vec, + pub fee: Coin, + pub mint: MintValue, + pub certificates: Vec, + pub withdrawals: KeyValuePairs, + pub valid_range: TimeRange, + pub signatories: Vec, + pub redeemers: KeyValuePairs, + pub data: KeyValuePairs, + pub id: Hash<32>, + pub votes: KeyValuePairs>, + pub proposal_procedures: Vec, + pub current_treasury_amount: Option, + pub treasury_donation: Option, +} + +impl TxInfoV3 { + pub fn from_transaction( + tx: &MintedTx, + utxos: &[ResolvedInput], + slot_config: &SlotConfig, + ) -> Result { + let inputs = get_tx_in_info_v2(&tx.transaction_body.inputs, utxos)?; + + let certificates = get_certificates_info(&tx.transaction_body.certificates); + + let withdrawals = + KeyValuePairs::from(get_withdrawals_info(&tx.transaction_body.withdrawals)); + + let mint = get_mint_info(&tx.transaction_body.mint); + + let proposal_procedures = + get_proposal_procedures_info(&tx.transaction_body.proposal_procedures); + + let votes = get_votes_info(&tx.transaction_body.voting_procedures); + + let redeemers = get_redeemers_info( + &tx.transaction_witness_set, + script_purpose_builder( + &inputs[..], + &mint, + &certificates, + &withdrawals, + &proposal_procedures, + &votes.iter().map(|(k, _v)| k).collect_vec()[..], + ), + )?; + + let reference_inputs = tx + .transaction_body + .reference_inputs + .clone() + .map(|refs| get_tx_in_info_v2(&refs[..], utxos)) + .transpose()? + .unwrap_or_default(); + + Ok(TxInfo::V3(TxInfoV3 { + inputs, + reference_inputs, + outputs: get_outputs_info(&tx.transaction_body.outputs[..]), + fee: get_fee_info(&tx.transaction_body.fee), + mint, + certificates, + withdrawals, + valid_range: get_validity_range_info(&tx.transaction_body, slot_config)?, + signatories: get_signatories_info(&tx.transaction_body.required_signers), + data: KeyValuePairs::from(get_data_info(&tx.transaction_witness_set)), + redeemers, + proposal_procedures, + votes, + current_treasury_amount: get_current_treasury_amount_info( + &tx.transaction_body.treasury_value, + ), + treasury_donation: get_treasury_donation_info(&tx.transaction_body.donation), + id: tx.transaction_body.original_hash(), + })) + } +} + #[derive(Debug, PartialEq, Clone)] pub enum TxInfo { V1(TxInfoV1), V2(TxInfoV2), + V3(TxInfoV3), +} + +impl TxInfo { + pub fn into_script_context( + self, + redeemer: &Redeemer, + datum: Option<&PlutusData>, + ) -> Option { + match self { + TxInfo::V1(TxInfoV1 { ref redeemers, .. }) + | TxInfo::V2(TxInfoV2 { ref redeemers, .. }) => redeemers + .iter() + .find_map(move |(purpose, some_redeemer)| { + if redeemer == some_redeemer { + Some(purpose.clone()) + } else { + None + } + }) + .map(move |purpose| ScriptContext::V1V2 { + tx_info: self, + purpose: purpose.clone().into(), + }), + + TxInfo::V3(TxInfoV3 { ref redeemers, .. }) => redeemers + .iter() + .find_map(move |(purpose, some_redeemer)| { + if redeemer == some_redeemer { + Some(purpose.clone()) + } else { + None + } + }) + .map(move |purpose| ScriptContext::V3 { + tx_info: self, + redeemer: redeemer.data.clone(), + purpose: purpose.clone().into_script_info(datum.cloned()), + }), + } + } + + pub fn inputs(&self) -> &[TxInInfo] { + match self { + TxInfo::V1(info) => &info.inputs, + TxInfo::V2(info) => &info.inputs, + TxInfo::V3(info) => &info.inputs, + } + } + + pub fn mint(&self) -> &MintValue { + match self { + TxInfo::V1(info) => &info.mint, + TxInfo::V2(info) => &info.mint, + TxInfo::V3(info) => &info.mint, + } + } + + pub fn withdrawals(&self) -> &[(Address, Coin)] { + match self { + TxInfo::V1(info) => &info.withdrawals[..], + TxInfo::V2(info) => &info.withdrawals[..], + TxInfo::V3(info) => &info.withdrawals[..], + } + } + + pub fn certificates(&self) -> &[Certificate] { + match self { + TxInfo::V1(info) => &info.certificates[..], + TxInfo::V2(info) => &info.certificates[..], + TxInfo::V3(info) => &info.certificates[..], + } + } } #[derive(Debug, PartialEq, Clone)] -pub struct ScriptContext { - pub tx_info: TxInfo, - pub purpose: ScriptPurpose, +pub enum ScriptContext { + V1V2 { + tx_info: TxInfo, + purpose: Box, + }, + V3 { + tx_info: TxInfo, + redeemer: PlutusData, + purpose: ScriptInfo>, + }, } //---- Time conversion: slot range => posix time range @@ -97,3 +496,1083 @@ impl Default for SlotConfig { } } } + +// --------------------- Translations + +pub fn get_tx_in_info_v1( + inputs: &[TransactionInput], + utxos: &[ResolvedInput], +) -> Result, Error> { + inputs + .iter() + .sorted() + .map(|input| { + let utxo = match utxos.iter().find(|utxo| utxo.input == *input) { + Some(resolved) => resolved, + None => return Err(Error::ResolvedInputNotFound(input.clone())), + }; + let address = Address::from_bytes(match &utxo.output { + TransactionOutput::Legacy(output) => output.address.as_ref(), + TransactionOutput::PostAlonzo(output) => output.address.as_ref(), + }) + .unwrap(); + + match address { + Address::Byron(_) => { + return Err(Error::ByronAddressNotAllowed); + } + Address::Stake(_) => { + return Err(Error::NoPaymentCredential); + } + _ => {} + }; + + match &utxo.output { + TransactionOutput::Legacy(_) => {} + TransactionOutput::PostAlonzo(output) => { + if let Some(DatumOption::Data(_)) = output.datum_option { + return Err(Error::InlineDatumNotAllowed); + } + + if output.script_ref.is_some() { + return Err(Error::ScriptAndInputRefNotAllowed); + } + } + } + + Ok(TxInInfo { + out_ref: utxo.input.clone(), + resolved: sort_tx_out_value(&utxo.output), + }) + }) + .collect() +} + +pub fn get_tx_in_info_v2( + inputs: &[TransactionInput], + utxos: &[ResolvedInput], +) -> Result, Error> { + inputs + .iter() + .sorted() + .map(|input| { + let utxo = match utxos.iter().find(|utxo| utxo.input == *input) { + Some(resolved) => resolved, + None => return Err(Error::ResolvedInputNotFound(input.clone())), + }; + let address = Address::from_bytes(match &utxo.output { + TransactionOutput::Legacy(output) => output.address.as_ref(), + TransactionOutput::PostAlonzo(output) => output.address.as_ref(), + }) + .unwrap(); + + match address { + Address::Byron(_) => { + return Err(Error::ByronAddressNotAllowed); + } + Address::Stake(_) => { + return Err(Error::NoPaymentCredential); + } + _ => {} + }; + + Ok(TxInInfo { + out_ref: utxo.input.clone(), + resolved: sort_tx_out_value(&utxo.output), + }) + }) + .collect() +} + +pub fn get_mint_info(mint: &Option) -> MintValue { + MintValue { + mint_value: mint + .as_ref() + .map(sort_mint) + .unwrap_or(NonEmptyKeyValuePairs::Indef(vec![])), + } +} + +pub fn get_outputs_info(outputs: &[MintedTransactionOutput]) -> Vec { + outputs + .iter() + .cloned() + .map(|output| sort_tx_out_value(&output.into())) + .collect() +} + +pub fn get_fee_info(fee: &Coin) -> Coin { + *fee +} + +pub fn get_current_treasury_amount_info(amount: &Option) -> Option { + *amount +} + +pub fn get_treasury_donation_info(amount: &Option) -> Option { + *amount +} + +pub fn get_certificates_info(certificates: &Option>) -> Vec { + certificates.clone().map(|s| s.to_vec()).unwrap_or_default() +} + +pub fn get_proposal_procedures_info( + proposal_procedures: &Option>, +) -> Vec { + proposal_procedures + .clone() + .map(|s| s.to_vec()) + .unwrap_or_default() +} + +pub fn get_withdrawals_info( + withdrawals: &Option>, +) -> Vec<(Address, Coin)> { + withdrawals + .clone() + .map(|w| { + w.into_iter() + .sorted_by(|(accnt_a, _), (accnt_b, _)| sort_reward_accounts(accnt_a, accnt_b)) + .map(|(reward_account, coin)| (Address::from_bytes(&reward_account).unwrap(), coin)) + .collect() + }) + .unwrap_or_default() +} + +pub fn get_validity_range_info( + body: &MintedTransactionBody, + slot_config: &SlotConfig, +) -> Result { + fn slot_to_begin_posix_time(slot: u64, sc: &SlotConfig) -> Result { + if slot < sc.zero_slot { + return Err(Error::SlotTooFarInThePast { + oldest_allowed: sc.zero_slot, + }); + } + let ms_after_begin = (slot - sc.zero_slot) * sc.slot_length as u64; + Ok(sc.zero_time + ms_after_begin) + } + + fn slot_range_to_posix_time_range( + slot_range: TimeRange, + sc: &SlotConfig, + ) -> Result { + Ok(TimeRange { + lower_bound: slot_range + .lower_bound + .map(|lower_bound| slot_to_begin_posix_time(lower_bound, sc)) + .transpose()?, + upper_bound: slot_range + .upper_bound + .map(|upper_bound| slot_to_begin_posix_time(upper_bound, sc)) + .transpose()?, + }) + } + + slot_range_to_posix_time_range( + TimeRange { + lower_bound: body.validity_interval_start, + upper_bound: body.ttl, + }, + slot_config, + ) +} + +pub fn get_signatories_info(signers: &Option) -> Vec { + signers + .as_deref() + .map(|s| s.iter().cloned().sorted().collect()) + .unwrap_or_default() +} + +pub fn get_data_info(witness_set: &MintedWitnessSet) -> Vec<(DatumHash, PlutusData)> { + witness_set + .plutus_data + .as_deref() + .map(|s| { + s.iter() + .cloned() + .map(|d| (d.original_hash(), d.clone().unwrap())) + .sorted() + .collect() + }) + .unwrap_or_default() +} + +pub fn get_redeemers_info<'a>( + witness_set: &'a MintedWitnessSet, + to_script_purpose: impl Fn(&'a RedeemersKey) -> Result, +) -> Result, Error> { + Ok(KeyValuePairs::from( + witness_set + .redeemer + .as_deref() + .map(|m| { + m.iter() + .sorted_by(|a, b| sort_redeemers(&a.0, &b.0)) + .map(|(redeemer_key, redeemer_value)| { + let redeemer = Redeemer { + tag: redeemer_key.tag, + index: redeemer_key.index, + data: redeemer_value.data.clone(), + ex_units: redeemer_value.ex_units, + }; + + to_script_purpose(redeemer_key).map(|purpose| (purpose, redeemer)) + }) + .collect::, _>>() + }) + .transpose()? + .unwrap_or_default(), + )) +} + +pub fn get_votes_info( + votes: &Option< + NonEmptyKeyValuePairs>, + >, +) -> KeyValuePairs> { + KeyValuePairs::from( + votes + .as_deref() + .map(|votes| { + votes + .iter() + .sorted_by(|(a, _), (b, _)| sort_voters(a, b)) + .cloned() + .map(|(voter, actions)| { + ( + voter, + KeyValuePairs::from( + actions + .iter() + .sorted_by(|(a, _), (b, _)| sort_gov_action_id(a, b)) + .cloned() + .collect::>(), + ), + ) + }) + .collect_vec() + }) + .unwrap_or_default(), + ) +} + +fn script_purpose_builder<'a>( + inputs: &'a [TxInInfo], + mint: &'a MintValue, + certificates: &'a [Certificate], + withdrawals: &'a KeyValuePairs, + proposal_procedures: &'a [ProposalProcedure], + votes: &'a [&'a Voter], +) -> impl Fn(&'a RedeemersKey) -> Result { + move |redeemer: &'a RedeemersKey| { + let tag = redeemer.tag; + let index = redeemer.index as usize; + + match tag { + RedeemerTag::Mint => mint + .mint_value + .get(index) + .map(|(policy_id, _)| ScriptPurpose::Minting(*policy_id)), + + RedeemerTag::Spend => inputs + .get(index) + .cloned() + .map(|i| ScriptPurpose::Spending(i.out_ref, ())), + + RedeemerTag::Cert => certificates + .get(index) + .cloned() + .map(|c| ScriptPurpose::Certifying(index, c)), + + RedeemerTag::Reward => withdrawals + .get(index) + .cloned() + .map(|(address, _)| match address { + Address::Stake(stake_address) => match stake_address.payload() { + StakePayload::Script(script_hash) => Ok(ScriptPurpose::Rewarding( + StakeCredential::Scripthash(*script_hash), + )), + StakePayload::Stake(_) => Err(Error::NonScriptWithdrawal), + }, + _ => Err(Error::BadWithdrawalAddress), + }) + .transpose()?, + + RedeemerTag::Vote => votes + .get(index) + .cloned() + .cloned() + .map(ScriptPurpose::Voting), + + RedeemerTag::Propose => proposal_procedures + .get(index) + .cloned() + .map(|p| ScriptPurpose::Proposing(index, p)), + } + .ok_or(Error::ExtraneousRedeemer) + } +} + +pub fn find_script( + redeemer: &Redeemer, + tx: &MintedTx, + utxos: &[ResolvedInput], + lookup_table: &DataLookupTable, +) -> Result<(ScriptVersion, Option), Error> { + let lookup_script = |script_hash: &ScriptHash| match lookup_table.scripts.get(script_hash) { + Some(s) => Ok((s.clone(), None)), + None => Err(Error::MissingRequiredScript { + hash: script_hash.to_string(), + }), + }; + + let lookup_datum = |datum: Option| match datum { + Some(DatumOption::Hash(hash)) => match lookup_table.datum.get(&hash) { + Some(d) => Ok(d.clone()), + None => Err(Error::MissingRequiredDatum { + hash: hash.to_string(), + }), + }, + Some(DatumOption::Data(data)) => Ok(data.0.clone()), + _ => Err(Error::MissingRequiredInlineDatumOrHash), + }; + + match redeemer.tag { + RedeemerTag::Mint => get_mint_info(&tx.transaction_body.mint) + .mint_value + .get(redeemer.index as usize) + .ok_or(Error::MissingScriptForRedeemer) + .and_then(|(policy_id, _)| { + let policy_id_array: [u8; 28] = policy_id.to_vec().try_into().unwrap(); + let hash = Hash::from(policy_id_array); + lookup_script(&hash) + }), + + RedeemerTag::Reward => get_withdrawals_info(&tx.transaction_body.withdrawals) + .get(redeemer.index as usize) + .ok_or(Error::MissingScriptForRedeemer) + .and_then(|(addr, _)| { + let stake_addr = if let Address::Stake(stake_addr) = addr { + stake_addr + } else { + unreachable!("withdrawal always contains stake addresses") + }; + + if let StakePayload::Script(hash) = stake_addr.payload() { + lookup_script(hash) + } else { + Err(Error::NonScriptWithdrawal) + } + }), + + RedeemerTag::Cert => get_certificates_info(&tx.transaction_body.certificates) + .get(redeemer.index as usize) + .ok_or(Error::MissingScriptForRedeemer) + .and_then(|cert| match cert { + Certificate::StakeDeregistration(stake_credential) + | Certificate::UnReg(stake_credential, _) + | Certificate::VoteDeleg(stake_credential, _) + | Certificate::VoteRegDeleg(stake_credential, _, _) + | Certificate::StakeVoteDeleg(stake_credential, _, _) + | Certificate::StakeRegDeleg(stake_credential, _, _) + | Certificate::StakeVoteRegDeleg(stake_credential, _, _, _) + | Certificate::RegDRepCert(stake_credential, _, _) + | Certificate::UnRegDRepCert(stake_credential, _) + | Certificate::UpdateDRepCert(stake_credential, _) + | Certificate::AuthCommitteeHot(stake_credential, _) + | Certificate::ResignCommitteeCold(stake_credential, _) + | Certificate::StakeDelegation(stake_credential, _) => match stake_credential { + StakeCredential::Scripthash(hash) => Ok(hash), + _ => Err(Error::NonScriptStakeCredential), + }, + Certificate::StakeRegistration { .. } + | Certificate::PoolRetirement { .. } + | Certificate::Reg { .. } + | Certificate::PoolRegistration { .. } => Err(Error::UnsupportedCertificateType), + }) + .and_then(lookup_script), + + RedeemerTag::Spend => get_tx_in_info_v2(&tx.transaction_body.inputs, utxos) + .or_else(|err| { + if matches!(err, Error::ByronAddressNotAllowed) { + get_tx_in_info_v1(&tx.transaction_body.inputs, utxos) + } else { + Err(err) + } + })? + .get(redeemer.index as usize) + .ok_or(Error::MissingScriptForRedeemer) + .and_then(|input| match output_address(&input.resolved) { + Address::Shelley(shelley_address) => { + let hash = shelley_address.payment().as_hash(); + + let script = lookup_script(hash); + + let datum = lookup_datum(output_datum(&input.resolved)); + + script.and_then(|(script, _)| Ok((script, Some(datum?)))) + } + _ => Err(Error::NonScriptStakeCredential), + }), + + RedeemerTag::Vote => get_votes_info(&tx.transaction_body.voting_procedures) + .get(redeemer.index as usize) + .ok_or(Error::MissingScriptForRedeemer) + .and_then(|(voter, _)| match voter { + Voter::ConstitutionalCommitteeScript(hash) => Ok(hash), + Voter::ConstitutionalCommitteeKey(..) => Err(Error::NonScriptStakeCredential), + Voter::DRepScript(hash) => Ok(hash), + Voter::DRepKey(..) => Err(Error::NonScriptStakeCredential), + Voter::StakePoolKey(..) => Err(Error::NonScriptStakeCredential), + }) + .and_then(lookup_script), + + RedeemerTag::Propose => { + get_proposal_procedures_info(&tx.transaction_body.proposal_procedures) + .get(redeemer.index as usize) + .ok_or(Error::MissingScriptForRedeemer) + .and_then(|procedure| match procedure.gov_action { + GovAction::ParameterChange(_, _, Nullable::Some(ref hash)) => Ok(hash), + GovAction::TreasuryWithdrawals(_, Nullable::Some(ref hash)) => Ok(hash), + GovAction::HardForkInitiation(..) + | GovAction::Information + | GovAction::NewConstitution(..) + | GovAction::TreasuryWithdrawals(..) + | GovAction::ParameterChange(..) + | GovAction::NoConfidence(..) + | GovAction::UpdateCommittee(..) => Err(Error::NoGuardrailScriptForProcedure), + }) + .and_then(lookup_script) + } + } +} + +pub fn from_alonzo_value(value: &alonzo::Value) -> Value { + match value { + alonzo::Value::Coin(coin) => Value::Coin(*coin), + alonzo::Value::Multiasset(coin, assets) if assets.is_empty() => Value::Coin(*coin), + alonzo::Value::Multiasset(coin, assets) => Value::Multiasset( + *coin, + NonEmptyKeyValuePairs::try_from( + assets + .iter() + .cloned() + .map(|(policy_id, tokens)| { + ( + policy_id, + NonEmptyKeyValuePairs::try_from( + tokens + .iter() + .cloned() + .map(|(asset_name, quantity)| { + ( + asset_name, + quantity.try_into().expect("0 Ada in output value?"), + ) + }) + .collect_vec(), + ) + .expect("empty tokens under a policy?"), + ) + }) + .collect_vec(), + ) + .expect("assets cannot be empty due to pattern-guard"), + ), + } +} + +pub fn from_alonzo_output(output: &alonzo::TransactionOutput) -> TransactionOutput { + TransactionOutput::PostAlonzo(PostAlonzoTransactionOutput { + address: output.address.clone(), + value: from_alonzo_value(&output.amount), + datum_option: output.datum_hash.map(DatumOption::Hash), + script_ref: None, + }) +} + +// --------------------- Sorting + +fn sort_tx_out_value(tx_output: &TransactionOutput) -> TransactionOutput { + match tx_output { + TransactionOutput::Legacy(output) => { + let new_output = PostAlonzoTransactionOutput { + address: output.address.clone(), + value: sort_value(&from_alonzo_value(&output.amount)), + datum_option: output.datum_hash.map(PseudoDatumOption::Hash), + script_ref: None, + }; + TransactionOutput::PostAlonzo(new_output) + } + TransactionOutput::PostAlonzo(output) => { + let mut new_output = output.clone(); + new_output.value = sort_value(&output.value); + TransactionOutput::PostAlonzo(new_output) + } + } +} + +fn sort_mint(mint: &Mint) -> Mint { + let mut mint_vec = vec![]; + + for m in mint.deref().iter().sorted() { + mint_vec.push(( + m.0, + NonEmptyKeyValuePairs::Indef( + m.1.deref().clone().into_iter().sorted().clone().collect(), + ), + )); + } + + NonEmptyKeyValuePairs::Indef(mint_vec) +} + +fn sort_value(value: &Value) -> Value { + match value { + Value::Coin(_) => value.clone(), + Value::Multiasset(coin, ma) => { + let mut ma_vec = vec![]; + for m in ma.deref().iter().sorted() { + ma_vec.push(( + m.0, + NonEmptyKeyValuePairs::Indef( + m.1.deref().clone().into_iter().sorted().clone().collect(), + ), + )); + } + Value::Multiasset(*coin, NonEmptyKeyValuePairs::Indef(ma_vec)) + } + } +} + +fn sort_redeemers(a: &RedeemersKey, b: &RedeemersKey) -> Ordering { + fn redeemer_tag_as_usize(tag: &RedeemerTag) -> usize { + match tag { + RedeemerTag::Spend => 0, + RedeemerTag::Mint => 1, + RedeemerTag::Cert => 2, + RedeemerTag::Reward => 3, + RedeemerTag::Vote => 4, + RedeemerTag::Propose => 5, + } + } + + if a.tag == b.tag { + a.index.cmp(&b.index) + } else { + redeemer_tag_as_usize(&a.tag).cmp(&redeemer_tag_as_usize(&b.tag)) + } +} + +pub fn sort_voters(a: &Voter, b: &Voter) -> Ordering { + fn explode(voter: &Voter) -> (usize, &Hash<28>) { + match voter { + Voter::ConstitutionalCommitteeScript(hash) => (0, hash), + Voter::ConstitutionalCommitteeKey(hash) => (1, hash), + Voter::DRepScript(hash) => (2, hash), + Voter::DRepKey(hash) => (3, hash), + Voter::StakePoolKey(hash) => (4, hash), + } + } + + let (tag_a, hash_a) = explode(a); + let (tag_b, hash_b) = explode(b); + + if tag_a == tag_b { + hash_a.cmp(hash_b) + } else { + tag_a.cmp(&tag_b) + } +} + +fn sort_gov_action_id(a: &GovActionId, b: &GovActionId) -> Ordering { + if a.transaction_id == b.transaction_id { + a.action_index.cmp(&b.action_index) + } else { + a.transaction_id.cmp(&b.transaction_id) + } +} + +pub fn sort_reward_accounts(a: &Bytes, b: &Bytes) -> Ordering { + let addr_a = Address::from_bytes(a).expect("invalid reward address in withdrawals."); + let addr_b = Address::from_bytes(b).expect("invalid reward address in withdrawals."); + + fn network_tag(network: Network) -> u8 { + match network { + Network::Testnet => 0, + Network::Mainnet => 1, + Network::Other(tag) => tag, + } + } + + if let (Address::Stake(accnt_a), Address::Stake(accnt_b)) = (addr_a, addr_b) { + if accnt_a.network() != accnt_b.network() { + return network_tag(accnt_a.network()).cmp(&network_tag(accnt_b.network())); + } + + match (accnt_a.payload(), accnt_b.payload()) { + (StakePayload::Script(..), StakePayload::Stake(..)) => Ordering::Less, + (StakePayload::Stake(..), StakePayload::Script(..)) => Ordering::Greater, + (StakePayload::Script(hash_a), StakePayload::Script(hash_b)) => hash_a.cmp(hash_b), + (StakePayload::Stake(hash_a), StakePayload::Stake(hash_b)) => hash_a.cmp(hash_b), + } + } else { + unreachable!("invalid reward address in withdrawals."); + } +} + +#[cfg(test)] +mod tests { + use crate::{ + ast::Data, + tx::{ + script_context::{TxInfo, TxInfoV3}, + to_plutus_data::ToPlutusData, + ResolvedInput, SlotConfig, + }, + }; + use pallas_primitives::{ + conway::{ExUnits, PlutusData, Redeemer, RedeemerTag, TransactionInput, TransactionOutput}, + Fragment, + }; + use pallas_traverse::{Era, MultiEraTx}; + + fn fixture_tx_info(transaction: &str, inputs: &str, outputs: &str) -> TxInfo { + let transaction_bytes = hex::decode(transaction).unwrap(); + let inputs_bytes = hex::decode(inputs).unwrap(); + let outputs_bytes = hex::decode(outputs).unwrap(); + + let inputs = Vec::::decode_fragment(inputs_bytes.as_slice()).unwrap(); + let outputs = Vec::::decode_fragment(outputs_bytes.as_slice()).unwrap(); + let resolved_inputs: Vec = inputs + .iter() + .zip(outputs.iter()) + .map(|(input, output)| ResolvedInput { + input: input.clone(), + output: output.clone(), + }) + .collect(); + + TxInfoV3::from_transaction( + MultiEraTx::decode_for_era(Era::Conway, transaction_bytes.as_slice()) + .unwrap() + .as_conway() + .unwrap(), + &resolved_inputs, + &SlotConfig::default(), + ) + .unwrap() + } + + #[allow(dead_code)] + fn from_haskell(data: &str) -> PlutusData { + PlutusData::decode_fragment(hex::decode(data).unwrap().as_slice()).unwrap() + } + + #[test] + fn script_context_simple_send() { + let datum = Some(Data::constr(0, Vec::new())); + + let redeemer = Redeemer { + tag: RedeemerTag::Spend, + index: 0, + data: Data::constr(0, Vec::new()), + ex_units: ExUnits { + mem: 1000000, + steps: 100000000, + }, + }; + + let script_context = fixture_tx_info( + "84a7008182582000000000000000000000000000000000000000000000000000\ + 0000000000000000018182581d60111111111111111111111111111111111111\ + 111111111111111111111a3b9aca0002182a0b5820ffffffffffffffffffffff\ + ffffffffffffffffffffffffffffffffffffffffff0d81825820000000000000\ + 0000000000000000000000000000000000000000000000000000001082581d60\ + 000000000000000000000000000000000000000000000000000000001a3b9aca\ + 001101a20581840000d87980821a000f42401a05f5e100078152510101003222\ + 253330044a229309b2b2b9a1f5f6", + "8182582000000000000000000000000000000000000000000000000000000000\ + 0000000000", + "81a300581d7039f47fd3b388ef53c48f08de24766d3e55dade6cae908cc24e0f\ + 4f3e011a3b9aca00028201d81843d87980", + ) + .into_script_context(&redeemer, datum.as_ref()) + .unwrap(); + + // NOTE: The initial snapshot has been generated using the Haskell + // implementation of the ledger library for that same serialized + // transactions. It is meant to control that our construction of the + // script context and its serialization matches exactly those + // from the Haskell ledger / cardano node. + insta::assert_debug_snapshot!(script_context.to_plutus_data()) + } + + #[test] + fn script_context_mint() { + let redeemer = Redeemer { + tag: RedeemerTag::Mint, + index: 1, + data: Data::integer(42.into()), + ex_units: ExUnits { + mem: 1000000, + steps: 100000000, + }, + }; + + let script_context = fixture_tx_info( + "84a9008182582000000000000000000000000000000000000000000000000000\ + 00000000000000000183a300581d600000000000000000000000000000000000\ + 0000000000000000000000011a000f42400282005820923918e403bf43c34b4e\ + f6b48eb2ee04babed17320d8d1b9ff9ad086e86f44eca2005839000000000000\ + 0000000000000000000000000000000000000000000000000000000000000000\ + 0000000000000000000000000000000000000001821a000f4240a2581c12593b\ + 4cbf7fdfd8636db99fe356437cd6af8539aadaa0a401964874a14474756e611b\ + 00005af3107a4000581c0c8eaf490c53afbf27e3d84a3b57da51fbafe5aa7844\ + 3fcec2dc262ea14561696b656e182aa300583910000000000000000000000000\ + 0000000000000000000000000000000000000000000000000000000000000000\ + 00000000000000000000000001821a000f4240a1581c0c8eaf490c53afbf27e3\ + d84a3b57da51fbafe5aa78443fcec2dc262ea14763617264616e6f0103d81847\ + 82034463666f6f02182a09a2581c12593b4cbf7fdfd8636db99fe356437cd6af\ + 8539aadaa0a401964874a14474756e611b00005af3107a4000581c0c8eaf490c\ + 53afbf27e3d84a3b57da51fbafe5aa78443fcec2dc262ea24763617264616e6f\ + 014561696b656e2d0b5820ffffffffffffffffffffffffffffffffffffffffff\ + ffffffffffffffffffffff0d8182582000000000000000000000000000000000\ + 00000000000000000000000000000000001082581d6000000000000000000000\ + 0000000000000000000000000000000000001a3b9aca00110112818258200000\ + 00000000000000000000000000000000000000000000000000000000000000a3\ + 0582840100d87980821a000f42401a05f5e100840101182a821a000f42401a05\ + f5e1000481d879800782587d587b010100323232323232322533333300800115\ + 3330033370e900018029baa001153330073006375400224a6660089445261533\ + 0054911856616c696461746f722072657475726e65642066616c736500136560\ + 02002002002002002153300249010b5f746d70323a20566f696400165734ae71\ + 55ceaab9e5573eae915895589301010032323232323232253333330080011533\ + 30033370e900018029baa001153330073006375400224a666008a6600a920110\ + 5f5f5f5f5f6d696e745f325f5f5f5f5f0014a22930a99802a4811856616c6964\ + 61746f722072657475726e65642066616c736500136560020020020020020021\ + 53300249010b5f746d70323a20566f696400165734ae7155ceaab9e5573eae91\ + f5f6", + "8182582000000000000000000000000000000000000000000000000000000000\ + 0000000000", + "81a200581d600000000000000000000000000000000000000000000000000000\ + 0000011a000f4240", + ) + .into_script_context(&redeemer, None) + .unwrap(); + + // NOTE: The initial snapshot has been generated using the Haskell + // implementation of the ledger library for that same serialized + // transactions. It is meant to control that our construction of the + // script context and its serialization matches exactly those + // from the Haskell ledger / cardano node. + insta::assert_debug_snapshot!(script_context.to_plutus_data()); + } + + #[test] + fn script_context_propose_all_but_pparams() { + let redeemer = Redeemer { + tag: RedeemerTag::Propose, + index: 3, + data: Data::constr(0, vec![]), + ex_units: ExUnits { + mem: 1000000, + steps: 100000000, + }, + }; + + let script_context = fixture_tx_info( + "84a4008182582000000000000000000000000000000000000000000000000000\ + 0000000000000000018002182a14d9010289841a001e8480581df00000000000\ + 00000000000000000000000000000000000000000000008301f6820a00827668\ + 747470733a2f2f61696b656e2d6c616e672e6f72675820000000000000000000\ + 0000000000000000000000000000000000000000000000841a001e8480581df0\ + 0000000000000000000000000000000000000000000000000000000083018258\ + 2000000000000000000000000000000000000000000000000000000000000000\ + 0000820b00827668747470733a2f2f61696b656e2d6c616e672e6f7267582000\ + 0000000000000000000000000000000000000000000000000000000000000084\ + 1a001e8480581df0000000000000000000000000000000000000000000000000\ + 000000008302a1581de011111111111111111111111111111111111111111111\ + 1111111111111a000f4240f6827668747470733a2f2f61696b656e2d6c616e67\ + 2e6f726758200000000000000000000000000000000000000000000000000000\ + 000000000000841a001e8480581df00000000000000000000000000000000000\ + 00000000000000000000008302a1581de0222222222222222222222222222222\ + 222222222222222222222222221a000f4240581c9b24324046544393443e1fb3\ + 5c8b72c3c39e18a516a95df5f6654101827668747470733a2f2f61696b656e2d\ + 6c616e672e6f7267582000000000000000000000000000000000000000000000\ + 00000000000000000000841a001e8480581df000000000000000000000000000\ + 0000000000000000000000000000008203f6827668747470733a2f2f61696b65\ + 6e2d6c616e672e6f726758200000000000000000000000000000000000000000\ + 000000000000000000000000841a001e8480581df00000000000000000000000\ + 00000000000000000000000000000000008504f6818200581c00000000000000\ + 000000000000000000000000000000000000000000a18200581c000000000000\ + 000000000000000000000000000000000000000000001901f4d81e8201028276\ + 68747470733a2f2f61696b656e2d6c616e672e6f726758200000000000000000\ + 000000000000000000000000000000000000000000000000841a001e8480581d\ + f0000000000000000000000000000000000000000000000000000000008305f6\ + 8282782068747470733a2f2f636f6e737469747574696f6e2e63617264616e6f\ + 2e6f726758200000000000000000000000000000000000000000000000000000\ + 000000000000f6827668747470733a2f2f61696b656e2d6c616e672e6f726758\ + 2000000000000000000000000000000000000000000000000000000000000000\ + 00841a001e8480581df000000000000000000000000000000000000000000000\ + 0000000000008305f68282782068747470733a2f2f636f6e737469747574696f\ + 6e2e63617264616e6f2e6f726758200000000000000000000000000000000000\ + 000000000000000000000000000000581c000000000000000000000000000000\ + 00000000000000000000000000827668747470733a2f2f61696b656e2d6c616e\ + 672e6f7267582000000000000000000000000000000000000000000000000000\ + 00000000000000841a001e8480581de000000000000000000000000000000000\ + 0000000000000000000000008106827668747470733a2f2f61696b656e2d6c61\ + 6e672e6f72675820000000000000000000000000000000000000000000000000\ + 0000000000000000a20581840503d87980821a000f42401a05f5e1000781587d\ + 587b0101003232323232323225333333008001153330033370e900018029baa0\ + 01153330073006375400224a66600894452615330054911856616c696461746f\ + 722072657475726e65642066616c736500136560020020020020020021533002\ + 49010b5f746d70313a20566f696400165734ae7155ceaab9e5573eae91f5f6", + "8182582000000000000000000000000000000000000000000000000000000000\ + 0000000000", + "81a200581d600000000000000000000000000000000000000000000000000000\ + 0000011a000f4240", + ) + .into_script_context(&redeemer, None) + .unwrap(); + + // NOTE: The initial snapshot has been generated using the Haskell + // implementation of the ledger library for that same serialized + // transactions. It is meant to control that our construction of the + // script context and its serialization matches exactly those + // from the Haskell ledger / cardano node. + insta::assert_debug_snapshot!(script_context.to_plutus_data()); + } + + #[test] + fn script_context_propose_pparams_no_cost_models() { + let redeemer = Redeemer { + tag: RedeemerTag::Propose, + index: 0, + data: Data::constr(0, vec![]), + ex_units: ExUnits { + mem: 1000000, + steps: 100000000, + }, + }; + + let script_context = fixture_tx_info( + "84a4008182582000000000000000000000000000000000000000000000000000\ + 0000000000000000018002182a14d9010281841a001e8480581df00000000000\ + 00000000000000000000000000000000000000000000008400f6b81d00182c01\ + 1a00025ef50712081901f409d81e82030a0ad81e82031903e80bd81e82020a02\ + 1a00016000031940000419044c051a001e8480061a1dcd650010190154111910\ + d61382d81e821902411903e8d81e821902d11a000f424014821a00d59f801b00\ + 000002540be40015821a03b20b801b00000004a817c800161913881718961818\ + 03181985d81e8218331864d81e8218341864d81e8218351864d81e8218361864\ + d81e8218371864181a8ad81e8218431864d81e8218431864d81e82183c1864d8\ + 1e82184b1864d81e82183c1864d81e8218431864d81e8218431864d81e821843\ + 1864d81e82184b1864d81e8218431864181b07181c1892181d06181e1b000000\ + 174876e800181f1a1dcd65001820141821d81e820f01581c9b24324046544393\ + 443e1fb35c8b72c3c39e18a516a95df5f6654101827668747470733a2f2f6169\ + 6b656e2d6c616e672e6f72675820000000000000000000000000000000000000\ + 0000000000000000000000000000a20581840500d87980821a000f42401a05f5\ + e1000781587d587b0101003232323232323225333333008001153330033370e9\ + 00018029baa001153330073006375400224a6660089445261533005491185661\ + 6c696461746f722072657475726e65642066616c736500136560020020020020\ + 02002153300249010b5f746d70313a20566f696400165734ae7155ceaab9e557\ + 3eae91f5f6", + "8182582000000000000000000000000000000000000000000000000000000000\ + 0000000000", + "81a200581d600000000000000000000000000000000000000000000000000000\ + 0000011a000f4240", + ) + .into_script_context(&redeemer, None) + .unwrap(); + + // NOTE: The initial snapshot has been generated using the Haskell + // implementation of the ledger library for that same serialized + // transactions. It is meant to control that our construction of the + // script context and its serialization matches exactly those + // from the Haskell ledger / cardano node. + insta::assert_debug_snapshot!(script_context.to_plutus_data()); + } + + #[test] + fn script_context_certificates() { + let redeemer = Redeemer { + tag: RedeemerTag::Cert, + index: 20, + data: Data::constr(0, vec![]), + ex_units: ExUnits { + mem: 1000000, + steps: 100000000, + }, + }; + + // NOTE: The transaction also contains treasury donation and current treasury amount + let script_context = fixture_tx_info( + "84a6008182582000000000000000000000000000000000000000000000000000\ + 00000000000000000180049582008201581c2222222222222222222222222222\ + 222222222222222222222222222282008200581c000000000000000000000000\ + 0000000000000000000000000000000082018200581c00000000000000000000\ + 0000000000000000000000000000000000008a03581c11111111111111111111\ + 1111111111111111111111111111111111115820999999999999999999999999\ + 99999999999999999999999999999999999999991a000f4240190154d81e8201\ + 1864581de0000000000000000000000000000000000000000000000000000000\ + 00d901028080f68304581c111111111111111111111111111111111111111111\ + 1111111111111119053983078200581c00000000000000000000000000000000\ + 0000000000000000000000001a002dc6c083088200581c000000000000000000\ + 000000000000000000000000000000000000001a002dc6c083098200581c0000\ + 00000000000000000000000000000000000000000000000000008200581c0000\ + 000000000000000000000000000000000000000000000000000083098200581c\ + 000000000000000000000000000000000000000000000000000000008201581c\ + 0000000000000000000000000000000000000000000000000000000083098200\ + 581c000000000000000000000000000000000000000000000000000000008102\ + 83098200581c0000000000000000000000000000000000000000000000000000\ + 00008103840a8200581c00000000000000000000000000000000000000000000\ + 000000000000581c111111111111111111111111111111111111111111111111\ + 111111118103840b8200581c0000000000000000000000000000000000000000\ + 0000000000000000581c11111111111111111111111111111111111111111111\ + 1111111111111a002dc6c0840c8200581c000000000000000000000000000000\ + 0000000000000000000000000081031a002dc6c0850d8200581c000000000000\ + 00000000000000000000000000000000000000000000581c1111111111111111\ + 111111111111111111111111111111111111111181031a002dc6c0830e820058\ + 1c00000000000000000000000000000000000000000000000000000000820058\ + 1c22222222222222222222222222222222222222222222222222222222830f82\ + 00581c00000000000000000000000000000000000000000000000000000000f6\ + 84108200581c0000000000000000000000000000000000000000000000000000\ + 00001a002dc6c0f683118200581c000000000000000000000000000000000000\ + 000000000000000000001a002dc6c083128200581c0000000000000000000000\ + 0000000000000000000000000000000000f683028201581c9b24324046544393\ + 443e1fb35c8b72c3c39e18a516a95df5f6654101581c11111111111111111111\ + 11111111111111111111111111111111111102182a151a00989680160ea20581\ + 840214d87980821a000f42401a05f5e1000781587d587b010100323232323232\ + 3225333333008001153330033370e900018029baa00115333007300637540022\ + 4a66600894452615330054911856616c696461746f722072657475726e656420\ + 66616c73650013656002002002002002002153300249010b5f746d70313a2056\ + 6f696400165734ae7155ceaab9e5573eae91f5f6", + "8182582000000000000000000000000000000000000000000000000000000000\ + 0000000000", + "81a200581d600000000000000000000000000000000000000000000000000000\ + 0000011a000f4240", + ) + .into_script_context(&redeemer, None) + .unwrap(); + + // NOTE: The initial snapshot has been generated using the Haskell + // implementation of the ledger library for that same serialized + // transactions. It is meant to control that our construction of the + // script context and its serialization matches exactly those + // from the Haskell ledger / cardano node. + insta::assert_debug_snapshot!(script_context.to_plutus_data()); + } + + #[test] + fn script_context_voting() { + let redeemer = Redeemer { + tag: RedeemerTag::Vote, + index: 0, + data: Data::constr(0, vec![Data::integer(42.into())]), + ex_units: ExUnits { + mem: 1000000, + steps: 100000000, + }, + }; + + // NOTE: The transaction also contains treasury donation and current treasury amount + let script_context = fixture_tx_info( + "84a4008182582000000000000000000000000000000000000000000000000000\ + 0000000000000000018002182a13a58200581c00000000000000000000000000\ + 000000000000000000000000000000a182582099999999999999999999999999\ + 9999999999999999999999999999999999999918988200827668747470733a2f\ + 2f61696b656e2d6c616e672e6f72675820000000000000000000000000000000\ + 00000000000000000000000000000000008202581c0000000000000000000000\ + 0000000000000000000000000000000000a38258209999999999999999999999\ + 999999999999999999999999999999999999999999008202f682582088888888\ + 88888888888888888888888888888888888888888888888888888888018202f6\ + 8258207777777777777777777777777777777777777777777777777777777777\ + 777777028202f68203581c43fa47afc68a7913fbe2f400e3849cb492d9a2610c\ + 85966de0f2ba1ea1825820999999999999999999999999999999999999999999\ + 9999999999999999999999038200f68204581c00000000000000000000000000\ + 000000000000000000000000000000a182582099999999999999999999999999\ + 99999999999999999999999999999999999999048201f68201581c43fa47afc6\ + 8a7913fbe2f400e3849cb492d9a2610c85966de0f2ba1ea18258209999999999\ + 999999999999999999999999999999999999999999999999999999018201f6a2\ + 0582840402d87980821a000f42401a05f5e100840400d87981182a821a000f42\ + 401a05f5e1000781587d587b0101003232323232323225333333008001153330\ + 033370e900018029baa001153330073006375400224a66600894452615330054\ + 911856616c696461746f722072657475726e65642066616c7365001365600200\ + 2002002002002153300249010b5f746d70303a20566f696400165734ae7155ce\ + aab9e5573eae91f5f6", + "8182582000000000000000000000000000000000000000000000000000000000\ + 0000000000", + "81a200581d600000000000000000000000000000000000000000000000000000\ + 0000011a000f4240", + ) + .into_script_context(&redeemer, None) + .unwrap(); + + // NOTE: The initial snapshot has been generated using the Haskell + // implementation of the ledger library for that same serialized + // transactions. It is meant to control that our construction of the + // script context and its serialization matches exactly those + // from the Haskell ledger / cardano node. + insta::assert_debug_snapshot!(script_context.to_plutus_data()); + } + + #[test] + fn script_context_withdraw() { + let redeemer = Redeemer { + tag: RedeemerTag::Reward, + index: 0, + data: Data::constr(0, vec![]), + ex_units: ExUnits { + mem: 1000000, + steps: 100000000, + }, + }; + + // NOTE: The transaction also contains treasury donation and current treasury amount + let script_context = fixture_tx_info( + "84a7008182582000000000000000000000000000000000000000000000000000\ + 00000000000000000183a2005839200000000000000000000000000000000000\ + 0000000000000000000000111111111111111111111111111111111111111111\ + 11111111111111011a000f4240a2005823400000000000000000000000000000\ + 00000000000000000000000000008198bd431b03011a000f4240a20058235011\ + 1111111111111111111111111111111111111111111111111111118198bd431b\ + 03011a000f424002182a031a00448e0105a1581df004036eecadc2f19e95f831\ + b4bc08919cde1d1088d74602bd3dcd78a2000e81581c00000000000000000000\ + 0000000000000000000000000000000000001601a10582840000d87a81d87980\ + 821a000f42401a05f5e100840300d87980821a000f42401a05f5e100f5f6", + "8182582000000000000000000000000000000000000000000000000000000000\ + 0000000000", + "81a40058393004036eecadc2f19e95f831b4bc08919cde1d1088d74602bd3dcd\ + 78a204036eecadc2f19e95f831b4bc08919cde1d1088d74602bd3dcd78a2011a\ + 000f4240028201d81843d8798003d818590221820359021c5902190101003232\ + 323232323232322232533333300c00215323330073001300937540062a660109\ + 211c52756e6e696e672032206172672076616c696461746f72206d696e740013\ + 533333300d004153330073001300937540082a66601660146ea8010494ccc021\ + 288a4c2a660129211856616c696461746f722072657475726e65642066616c73\ + 65001365600600600600600600600315330084911d52756e6e696e6720332061\ + 72672076616c696461746f72207370656e640013533333300d00415333007300\ + 1300937540082a66601660146ea8010494cccccc03800454ccc020c008c028dd\ + 50008a99980618059baa0011253330094a22930a998052491856616c69646174\ + 6f722072657475726e65642066616c7365001365600600600600600600600600\ + 6006006006006300c300a37540066e1d20001533007001161533007001161533\ + 00700116153300700116490191496e636f72726563742072656465656d657220\ + 7479706520666f722076616c696461746f72207370656e642e0a202020202020\ + 2020202020202020202020202020446f75626c6520636865636b20796f752068\ + 6176652077726170706564207468652072656465656d65722074797065206173\ + 2073706563696669656420696e20796f757220706c757475732e6a736f6e0015\ + 330034910b5f746d70313a20566f6964001615330024910b5f746d70303a2056\ + 6f696400165734ae7155ceaab9e5573eae855d21", + ) + .into_script_context(&redeemer, None) + .unwrap(); + + // NOTE: The initial snapshot has been generated using the Haskell + // implementation of the ledger library for that same serialized + // transactions. It is meant to control that our construction of the + // script context and its serialization matches exactly those + // from the Haskell ledger / cardano node. + insta::assert_debug_snapshot!(script_context.to_plutus_data()); + } +} diff --git a/crates/uplc/src/tx/snapshots/uplc__tx__script_context__tests__script_context_certificates.snap b/crates/uplc/src/tx/snapshots/uplc__tx__script_context__tests__script_context_certificates.snap new file mode 100644 index 00000000..5349e185 --- /dev/null +++ b/crates/uplc/src/tx/snapshots/uplc__tx__script_context__tests__script_context_certificates.snap @@ -0,0 +1,2191 @@ +--- +source: crates/uplc/src/tx/script_context.rs +expression: script_context.to_plutus_data() +--- +Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Array( + [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 0, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000, + }, + ), + ), + ), + ), + ], + ), + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + }, + ), + ], + ), + Array( + [], + ), + Array( + [], + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 42, + }, + ), + ), + ), + Map( + Def( + [], + ), + ), + Array( + [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 1280, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + ], + ), + ), + BoundedBytes( + BoundedBytes( + [ + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 1281, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1337, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3000000, + }, + ), + ), + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3000000, + }, + ), + ), + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + ], + ), + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 124, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + ], + ), + ), + ], + }, + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 3000000, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 124, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 3000000, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 124, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + ], + ), + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 3000000, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 1282, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + ], + ), + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 1283, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 125, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 3000000, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 127, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 3000000, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 126, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 155, + 36, + 50, + 64, + 70, + 84, + 67, + 147, + 68, + 62, + 31, + 179, + 92, + 139, + 114, + 195, + 195, + 158, + 24, + 165, + 22, + 169, + 93, + 245, + 246, + 101, + 65, + 1, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + ), + Map( + Def( + [], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + }, + ), + Array( + [], + ), + Map( + Def( + [ + ( + Constr( + Constr { + tag: 124, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 20, + }, + ), + ), + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 155, + 36, + 50, + 64, + 70, + 84, + 67, + 147, + 68, + 62, + 31, + 179, + 92, + 139, + 114, + 195, + 195, + 158, + 24, + 165, + 22, + 169, + 93, + 245, + 246, + 101, + 65, + 1, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + ), + ], + ), + ), + Map( + Def( + [], + ), + ), + BoundedBytes( + BoundedBytes( + [ + 128, + 191, + 104, + 206, + 210, + 197, + 11, + 135, + 52, + 252, + 140, + 235, + 208, + 160, + 73, + 225, + 110, + 83, + 210, + 254, + 94, + 199, + 228, + 40, + 34, + 240, + 124, + 38, + 60, + 237, + 152, + 171, + ], + ), + ), + Map( + Def( + [], + ), + ), + Array( + [], + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 10000000, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 14, + }, + ), + ), + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 124, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 20, + }, + ), + ), + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 155, + 36, + 50, + 64, + 70, + 84, + 67, + 147, + 68, + 62, + 31, + 179, + 92, + 139, + 114, + 195, + 195, + 158, + 24, + 165, + 22, + 169, + 93, + 245, + 246, + 101, + 65, + 1, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + ], + }, +) diff --git a/crates/uplc/src/tx/snapshots/uplc__tx__script_context__tests__script_context_mint.snap b/crates/uplc/src/tx/snapshots/uplc__tx__script_context__tests__script_context_mint.snap new file mode 100644 index 00000000..cb1705d4 --- /dev/null +++ b/crates/uplc/src/tx/snapshots/uplc__tx__script_context__tests__script_context_mint.snap @@ -0,0 +1,1616 @@ +--- +source: crates/uplc/src/tx/script_context.rs +expression: script_context.to_plutus_data() +--- +Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Array( + [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 0, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000, + }, + ), + ), + ), + ), + ], + ), + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + }, + ), + ], + ), + Array( + [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 0, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000, + }, + ), + ), + ), + ), + ], + ), + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + }, + ), + ], + ), + Array( + [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000, + }, + ), + ), + ), + ), + ], + ), + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 146, + 57, + 24, + 228, + 3, + 191, + 67, + 195, + 75, + 78, + 246, + 180, + 142, + 178, + 238, + 4, + 186, + 190, + 209, + 115, + 32, + 216, + 209, + 185, + 255, + 154, + 208, + 134, + 232, + 111, + 68, + 236, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000, + }, + ), + ), + ), + ), + ], + ), + ), + ), + ( + BoundedBytes( + BoundedBytes( + [ + 12, + 142, + 175, + 73, + 12, + 83, + 175, + 191, + 39, + 227, + 216, + 74, + 59, + 87, + 218, + 81, + 251, + 175, + 229, + 170, + 120, + 68, + 63, + 206, + 194, + 220, + 38, + 46, + ], + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [ + 97, + 105, + 107, + 101, + 110, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 42, + }, + ), + ), + ), + ), + ], + ), + ), + ), + ( + BoundedBytes( + BoundedBytes( + [ + 18, + 89, + 59, + 76, + 191, + 127, + 223, + 216, + 99, + 109, + 185, + 159, + 227, + 86, + 67, + 124, + 214, + 175, + 133, + 57, + 170, + 218, + 160, + 164, + 1, + 150, + 72, + 116, + ], + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [ + 116, + 117, + 110, + 97, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100000000000000, + }, + ), + ), + ), + ), + ], + ), + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000, + }, + ), + ), + ), + ), + ], + ), + ), + ), + ( + BoundedBytes( + BoundedBytes( + [ + 12, + 142, + 175, + 73, + 12, + 83, + 175, + 191, + 39, + 227, + 216, + 74, + 59, + 87, + 218, + 81, + 251, + 175, + 229, + 170, + 120, + 68, + 63, + 206, + 194, + 220, + 38, + 46, + ], + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [ + 99, + 97, + 114, + 100, + 97, + 110, + 111, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1, + }, + ), + ), + ), + ), + ], + ), + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 104, + 173, + 84, + 179, + 168, + 18, + 77, + 159, + 229, + 202, + 170, + 242, + 1, + 26, + 133, + 215, + 32, + 150, + 230, + 150, + 162, + 251, + 61, + 127, + 134, + 196, + 23, + 23, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 42, + }, + ), + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [ + 12, + 142, + 175, + 73, + 12, + 83, + 175, + 191, + 39, + 227, + 216, + 74, + 59, + 87, + 218, + 81, + 251, + 175, + 229, + 170, + 120, + 68, + 63, + 206, + 194, + 220, + 38, + 46, + ], + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [ + 97, + 105, + 107, + 101, + 110, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: true, + val: 13, + }, + ), + ), + ), + ), + ( + BoundedBytes( + BoundedBytes( + [ + 99, + 97, + 114, + 100, + 97, + 110, + 111, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1, + }, + ), + ), + ), + ), + ], + ), + ), + ), + ( + BoundedBytes( + BoundedBytes( + [ + 18, + 89, + 59, + 76, + 191, + 127, + 223, + 216, + 99, + 109, + 185, + 159, + 227, + 86, + 67, + 124, + 214, + 175, + 133, + 57, + 170, + 218, + 160, + 164, + 1, + 150, + 72, + 116, + ], + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [ + 116, + 117, + 110, + 97, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100000000000000, + }, + ), + ), + ), + ), + ], + ), + ), + ), + ], + ), + ), + Array( + [], + ), + Map( + Def( + [], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + }, + ), + Array( + [], + ), + Map( + Def( + [ + ( + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 12, + 142, + 175, + 73, + 12, + 83, + 175, + 191, + 39, + 227, + 216, + 74, + 59, + 87, + 218, + 81, + 251, + 175, + 229, + 170, + 120, + 68, + 63, + 206, + 194, + 220, + 38, + 46, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + ), + ( + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 18, + 89, + 59, + 76, + 191, + 127, + 223, + 216, + 99, + 109, + 185, + 159, + 227, + 86, + 67, + 124, + 214, + 175, + 133, + 57, + 170, + 218, + 160, + 164, + 1, + 150, + 72, + 116, + ], + ), + ), + ], + }, + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 42, + }, + ), + ), + ), + ), + ], + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [ + 146, + 57, + 24, + 228, + 3, + 191, + 67, + 195, + 75, + 78, + 246, + 180, + 142, + 178, + 238, + 4, + 186, + 190, + 209, + 115, + 32, + 216, + 209, + 185, + 255, + 154, + 208, + 134, + 232, + 111, + 68, + 236, + ], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + ), + ], + ), + ), + BoundedBytes( + BoundedBytes( + [ + 231, + 87, + 152, + 94, + 72, + 228, + 58, + 149, + 161, + 133, + 221, + 186, + 8, + 200, + 20, + 188, + 32, + 248, + 28, + 182, + 133, + 68, + 172, + 147, + 122, + 155, + 153, + 46, + 78, + 108, + 56, + 160, + ], + ), + ), + Map( + Def( + [], + ), + ), + Array( + [], + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 42, + }, + ), + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 18, + 89, + 59, + 76, + 191, + 127, + 223, + 216, + 99, + 109, + 185, + 159, + 227, + 86, + 67, + 124, + 214, + 175, + 133, + 57, + 170, + 218, + 160, + 164, + 1, + 150, + 72, + 116, + ], + ), + ), + ], + }, + ), + ], + }, +) diff --git a/crates/uplc/src/tx/snapshots/uplc__tx__script_context__tests__script_context_propose_all_but_pparams.snap b/crates/uplc/src/tx/snapshots/uplc__tx__script_context__tests__script_context_propose_all_but_pparams.snap new file mode 100644 index 00000000..95937595 --- /dev/null +++ b/crates/uplc/src/tx/snapshots/uplc__tx__script_context__tests__script_context_propose_all_but_pparams.snap @@ -0,0 +1,1885 @@ +--- +source: crates/uplc/src/tx/script_context.rs +expression: script_context.to_plutus_data() +--- +Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Array( + [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 0, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000, + }, + ), + ), + ), + ), + ], + ), + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + }, + ), + ], + ), + Array( + [], + ), + Array( + [], + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 42, + }, + ), + ), + ), + Map( + Def( + [], + ), + ), + Array( + [], + ), + Map( + Def( + [], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + }, + ), + Array( + [], + ), + Map( + Def( + [ + ( + Constr( + Constr { + tag: 126, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 2000000, + }, + ), + ), + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [ + Map( + Def( + [ + ( + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + ], + ), + ), + ], + }, + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000, + }, + ), + ), + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 155, + 36, + 50, + 64, + 70, + 84, + 67, + 147, + 68, + 62, + 31, + 179, + 92, + 139, + 114, + 195, + 195, + 158, + 24, + 165, + 22, + 169, + 93, + 245, + 246, + 101, + 65, + 1, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + ), + ], + ), + ), + Map( + Def( + [], + ), + ), + BoundedBytes( + BoundedBytes( + [ + 100, + 76, + 84, + 18, + 140, + 45, + 90, + 9, + 167, + 181, + 207, + 31, + 83, + 63, + 250, + 186, + 198, + 73, + 117, + 34, + 75, + 214, + 232, + 246, + 68, + 61, + 41, + 50, + 186, + 97, + 252, + 205, + ], + ), + ), + Map( + Def( + [], + ), + ), + Array( + [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 2000000, + }, + ), + ), + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 10, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 0, + }, + ), + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 2000000, + }, + ), + ), + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 0, + }, + ), + ), + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 11, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 0, + }, + ), + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 2000000, + }, + ), + ), + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [ + Map( + Def( + [ + ( + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + ], + ), + ), + ], + }, + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000, + }, + ), + ), + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 2000000, + }, + ), + ), + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [ + Map( + Def( + [ + ( + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + ], + ), + ), + ], + }, + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000, + }, + ), + ), + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 155, + 36, + 50, + 64, + 70, + 84, + 67, + 147, + 68, + 62, + 31, + 179, + 92, + 139, + 114, + 195, + 195, + 158, + 24, + 165, + 22, + 169, + 93, + 245, + 246, + 101, + 65, + 1, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 2000000, + }, + ), + ), + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 124, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 2000000, + }, + ), + ), + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 125, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + Array( + [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + ], + ), + Map( + Def( + [ + ( + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 500, + }, + ), + ), + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 1, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 2, + }, + ), + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 2000000, + }, + ), + ), + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 126, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 2000000, + }, + ), + ), + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 126, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 2000000, + }, + ), + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 127, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 126, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 2000000, + }, + ), + ), + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [ + Map( + Def( + [ + ( + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + 34, + ], + ), + ), + ], + }, + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000, + }, + ), + ), + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 155, + 36, + 50, + 64, + 70, + 84, + 67, + 147, + 68, + 62, + 31, + 179, + 92, + 139, + 114, + 195, + 195, + 158, + 24, + 165, + 22, + 169, + 93, + 245, + 246, + 101, + 65, + 1, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + ], + }, +) diff --git a/crates/uplc/src/tx/snapshots/uplc__tx__script_context__tests__script_context_propose_pparams_no_cost_models.snap b/crates/uplc/src/tx/snapshots/uplc__tx__script_context__tests__script_context_propose_pparams_no_cost_models.snap new file mode 100644 index 00000000..746d382d --- /dev/null +++ b/crates/uplc/src/tx/snapshots/uplc__tx__script_context__tests__script_context_propose_pparams_no_cost_models.snap @@ -0,0 +1,4116 @@ +--- +source: crates/uplc/src/tx/script_context.rs +expression: script_context.to_plutus_data() +--- +Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Array( + [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 0, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000, + }, + ), + ), + ), + ), + ], + ), + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + }, + ), + ], + ), + Array( + [], + ), + Array( + [], + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 42, + }, + ), + ), + ), + Map( + Def( + [], + ), + ), + Array( + [], + ), + Map( + Def( + [], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + }, + ), + Array( + [], + ), + Map( + Def( + [ + ( + Constr( + Constr { + tag: 126, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 0, + }, + ), + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 2000000, + }, + ), + ), + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + Map( + Def( + [ + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 0, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 44, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 1, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 155381, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 2, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 90112, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 16384, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 4, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1100, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 5, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 2000000, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 6, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 500000000, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 7, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 18, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 8, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 500, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 9, + }, + ), + ), + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 10, + }, + ), + ), + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 10, + }, + ), + ), + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000, + }, + ), + ), + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 11, + }, + ), + ), + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 1, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 5, + }, + ), + ), + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 16, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 340, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 17, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 4310, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 19, + }, + ), + ), + ), + Array( + [ + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 577, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 721, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000, + }, + ), + ), + ), + ], + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 20, + }, + ), + ), + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 14000000, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 10000000000, + }, + ), + ), + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 21, + }, + ), + ), + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 62000000, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 20000000000, + }, + ), + ), + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 22, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 5000, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 23, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 150, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 24, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 25, + }, + ), + ), + ), + Array( + [ + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 51, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 13, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 25, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 53, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 27, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 50, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 11, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 20, + }, + ), + ), + ), + ], + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 26, + }, + ), + ), + ), + Array( + [ + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 67, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 67, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 5, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 4, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 5, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 67, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 67, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 67, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 4, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 67, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 27, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 7, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 28, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 146, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 29, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 6, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 30, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100000000000, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 31, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 500000000, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 32, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 20, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 33, + }, + ), + ), + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 15, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1, + }, + ), + ), + ), + ], + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 155, + 36, + 50, + 64, + 70, + 84, + 67, + 147, + 68, + 62, + 31, + 179, + 92, + 139, + 114, + 195, + 195, + 158, + 24, + 165, + 22, + 169, + 93, + 245, + 246, + 101, + 65, + 1, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + ), + ], + ), + ), + Map( + Def( + [], + ), + ), + BoundedBytes( + BoundedBytes( + [ + 168, + 138, + 155, + 248, + 175, + 81, + 234, + 115, + 139, + 242, + 18, + 254, + 32, + 78, + 94, + 242, + 253, + 5, + 49, + 44, + 153, + 93, + 173, + 30, + 193, + 148, + 220, + 220, + 90, + 160, + 119, + 55, + ], + ), + ), + Map( + Def( + [], + ), + ), + Array( + [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 2000000, + }, + ), + ), + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + Map( + Def( + [ + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 0, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 44, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 1, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 155381, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 2, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 90112, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 16384, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 4, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1100, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 5, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 2000000, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 6, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 500000000, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 7, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 18, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 8, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 500, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 9, + }, + ), + ), + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 10, + }, + ), + ), + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 10, + }, + ), + ), + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000, + }, + ), + ), + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 11, + }, + ), + ), + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 1, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 5, + }, + ), + ), + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 16, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 340, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 17, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 4310, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 19, + }, + ), + ), + ), + Array( + [ + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 577, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 721, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000, + }, + ), + ), + ), + ], + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 20, + }, + ), + ), + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 14000000, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 10000000000, + }, + ), + ), + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 21, + }, + ), + ), + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 62000000, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 20000000000, + }, + ), + ), + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 22, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 5000, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 23, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 150, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 24, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 25, + }, + ), + ), + ), + Array( + [ + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 51, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 13, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 25, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 53, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 27, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 50, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 11, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 20, + }, + ), + ), + ), + ], + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 26, + }, + ), + ), + ), + Array( + [ + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 67, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 67, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 5, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 4, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 5, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 67, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 67, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 67, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 4, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 67, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 27, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 7, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 28, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 146, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 29, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 6, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 30, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100000000000, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 31, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 500000000, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 32, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 20, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 33, + }, + ), + ), + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 15, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1, + }, + ), + ), + ), + ], + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 155, + 36, + 50, + 64, + 70, + 84, + 67, + 147, + 68, + 62, + 31, + 179, + 92, + 139, + 114, + 195, + 195, + 158, + 24, + 165, + 22, + 169, + 93, + 245, + 246, + 101, + 65, + 1, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + ], + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 126, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 0, + }, + ), + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 2000000, + }, + ), + ), + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + Map( + Def( + [ + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 0, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 44, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 1, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 155381, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 2, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 90112, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 16384, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 4, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1100, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 5, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 2000000, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 6, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 500000000, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 7, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 18, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 8, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 500, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 9, + }, + ), + ), + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 10, + }, + ), + ), + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 10, + }, + ), + ), + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000, + }, + ), + ), + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 11, + }, + ), + ), + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 1, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 5, + }, + ), + ), + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 16, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 340, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 17, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 4310, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 19, + }, + ), + ), + ), + Array( + [ + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 577, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 721, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000, + }, + ), + ), + ), + ], + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 20, + }, + ), + ), + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 14000000, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 10000000000, + }, + ), + ), + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 21, + }, + ), + ), + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 62000000, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 20000000000, + }, + ), + ), + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 22, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 5000, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 23, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 150, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 24, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 25, + }, + ), + ), + ), + Array( + [ + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 51, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 13, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 25, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 53, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 27, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 50, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 11, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 20, + }, + ), + ), + ), + ], + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 26, + }, + ), + ), + ), + Array( + [ + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 67, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 67, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 5, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 4, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 5, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 67, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 67, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 67, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 4, + }, + ), + ), + ), + ], + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 67, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100, + }, + ), + ), + ), + ], + ), + ], + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 27, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 7, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 28, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 146, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 29, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 6, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 30, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 100000000000, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 31, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 500000000, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 32, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 20, + }, + ), + ), + ), + ), + ( + BigInt( + Int( + Int( + Int { + neg: false, + val: 33, + }, + ), + ), + ), + Array( + [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 15, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1, + }, + ), + ), + ), + ], + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 155, + 36, + 50, + 64, + 70, + 84, + 67, + 147, + 68, + 62, + 31, + 179, + 92, + 139, + 114, + 195, + 195, + 158, + 24, + 165, + 22, + 169, + 93, + 245, + 246, + 101, + 65, + 1, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + ], + }, +) diff --git a/crates/uplc/src/tx/snapshots/uplc__tx__script_context__tests__script_context_simple_send.snap b/crates/uplc/src/tx/snapshots/uplc__tx__script_context__tests__script_context_simple_send.snap new file mode 100644 index 00000000..141419d6 --- /dev/null +++ b/crates/uplc/src/tx/snapshots/uplc__tx__script_context__tests__script_context_simple_send.snap @@ -0,0 +1,641 @@ +--- +source: crates/uplc/src/tx/script_context.rs +expression: script_context.to_plutus_data() +--- +Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Array( + [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 0, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 57, + 244, + 127, + 211, + 179, + 136, + 239, + 83, + 196, + 143, + 8, + 222, + 36, + 118, + 109, + 62, + 85, + 218, + 222, + 108, + 174, + 144, + 140, + 194, + 78, + 15, + 79, + 62, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000000, + }, + ), + ), + ), + ), + ], + ), + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + }, + ), + ], + ), + Array( + [], + ), + Array( + [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000000, + }, + ), + ), + ), + ), + ], + ), + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 42, + }, + ), + ), + ), + Map( + Def( + [], + ), + ), + Array( + [], + ), + Map( + Def( + [], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + }, + ), + Array( + [], + ), + Map( + Def( + [ + ( + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 0, + }, + ), + ), + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + ), + ], + ), + ), + Map( + Def( + [], + ), + ), + BoundedBytes( + BoundedBytes( + [ + 120, + 236, + 20, + 142, + 166, + 71, + 207, + 153, + 105, + 68, + 104, + 145, + 175, + 49, + 147, + 156, + 93, + 87, + 178, + 117, + 162, + 69, + 87, + 6, + 120, + 44, + 97, + 131, + 239, + 11, + 98, + 241, + ], + ), + ), + Map( + Def( + [], + ), + ), + Array( + [], + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 0, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + }, + ), + ], + }, +) diff --git a/crates/uplc/src/tx/snapshots/uplc__tx__script_context__tests__script_context_voting.snap b/crates/uplc/src/tx/snapshots/uplc__tx__script_context__tests__script_context_voting.snap new file mode 100644 index 00000000..70312288 --- /dev/null +++ b/crates/uplc/src/tx/snapshots/uplc__tx__script_context__tests__script_context_voting.snap @@ -0,0 +1,1317 @@ +--- +source: crates/uplc/src/tx/script_context.rs +expression: script_context.to_plutus_data() +--- +Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Array( + [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 0, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000, + }, + ), + ), + ), + ), + ], + ), + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + }, + ), + ], + ), + Array( + [], + ), + Array( + [], + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 42, + }, + ), + ), + ), + Map( + Def( + [], + ), + ), + Array( + [], + ), + Map( + Def( + [], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + }, + ), + Array( + [], + ), + Map( + Def( + [ + ( + Constr( + Constr { + tag: 125, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 67, + 250, + 71, + 175, + 198, + 138, + 121, + 19, + 251, + 226, + 244, + 0, + 227, + 132, + 156, + 180, + 146, + 217, + 162, + 97, + 12, + 133, + 150, + 109, + 224, + 242, + 186, + 30, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 42, + }, + ), + ), + ), + ], + }, + ), + ), + ( + Constr( + Constr { + tag: 125, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 67, + 250, + 71, + 175, + 198, + 138, + 121, + 19, + 251, + 226, + 244, + 0, + 227, + 132, + 156, + 180, + 146, + 217, + 162, + 97, + 12, + 133, + 150, + 109, + 224, + 242, + 186, + 30, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + ), + ], + ), + ), + Map( + Def( + [], + ), + ), + BoundedBytes( + BoundedBytes( + [ + 224, + 66, + 234, + 62, + 149, + 207, + 129, + 86, + 132, + 46, + 53, + 99, + 151, + 120, + 68, + 27, + 236, + 175, + 60, + 134, + 44, + 185, + 69, + 158, + 231, + 75, + 68, + 174, + 235, + 136, + 198, + 115, + ], + ), + ), + Map( + Def( + [ + ( + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 67, + 250, + 71, + 175, + 198, + 138, + 121, + 19, + 251, + 226, + 244, + 0, + 227, + 132, + 156, + 180, + 146, + 217, + 162, + 97, + 12, + 133, + 150, + 109, + 224, + 242, + 186, + 30, + ], + ), + ), + ], + }, + ), + ], + }, + ), + Map( + Def( + [ + ( + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ), + ], + ), + ), + ), + ( + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + ], + }, + ), + Map( + Def( + [ + ( + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 152, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + ), + ], + ), + ), + ), + ( + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 67, + 250, + 71, + 175, + 198, + 138, + 121, + 19, + 251, + 226, + 244, + 0, + 227, + 132, + 156, + 180, + 146, + 217, + 162, + 97, + 12, + 133, + 150, + 109, + 224, + 242, + 186, + 30, + ], + ), + ), + ], + }, + ), + ], + }, + ), + Map( + Def( + [ + ( + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + ), + ], + ), + ), + ), + ( + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + ], + }, + ), + Map( + Def( + [ + ( + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + 119, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 2, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [], + }, + ), + ), + ( + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + 136, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [], + }, + ), + ), + ( + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 0, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [], + }, + ), + ), + ], + ), + ), + ), + ( + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Map( + Def( + [ + ( + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + 153, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 4, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ), + ], + ), + ), + ), + ], + ), + ), + Array( + [], + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 42, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 125, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 67, + 250, + 71, + 175, + 198, + 138, + 121, + 19, + 251, + 226, + 244, + 0, + 227, + 132, + 156, + 180, + 146, + 217, + 162, + 97, + 12, + 133, + 150, + 109, + 224, + 242, + 186, + 30, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + ], + }, +) diff --git a/crates/uplc/src/tx/snapshots/uplc__tx__script_context__tests__script_context_withdraw.snap b/crates/uplc/src/tx/snapshots/uplc__tx__script_context__tests__script_context_withdraw.snap new file mode 100644 index 00000000..28d781a9 --- /dev/null +++ b/crates/uplc/src/tx/snapshots/uplc__tx__script_context__tests__script_context_withdraw.snap @@ -0,0 +1,1236 @@ +--- +source: crates/uplc/src/tx/script_context.rs +expression: script_context.to_plutus_data() +--- +Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Array( + [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 0, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 4, + 3, + 110, + 236, + 173, + 194, + 241, + 158, + 149, + 248, + 49, + 180, + 188, + 8, + 145, + 156, + 222, + 29, + 16, + 136, + 215, + 70, + 2, + 189, + 61, + 205, + 120, + 162, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 4, + 3, + 110, + 236, + 173, + 194, + 241, + 158, + 149, + 248, + 49, + 180, + 188, + 8, + 145, + 156, + 222, + 29, + 16, + 136, + 215, + 70, + 2, + 189, + 61, + 205, + 120, + 162, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000, + }, + ), + ), + ), + ), + ], + ), + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 4, + 3, + 110, + 236, + 173, + 194, + 241, + 158, + 149, + 248, + 49, + 180, + 188, + 8, + 145, + 156, + 222, + 29, + 16, + 136, + 215, + 70, + 2, + 189, + 61, + 205, + 120, + 162, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + ], + ), + Array( + [], + ), + Array( + [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000, + }, + ), + ), + ), + ), + ], + ), + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 2498243, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 27, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000, + }, + ), + ), + ), + ), + ], + ), + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + 17, + ], + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 2498243, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 27, + }, + ), + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 3, + }, + ), + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + Map( + Def( + [ + ( + BoundedBytes( + BoundedBytes( + [], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 1000000, + }, + ), + ), + ), + ), + ], + ), + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 42, + }, + ), + ), + ), + Map( + Def( + [], + ), + ), + Array( + [], + ), + Map( + Def( + [ + ( + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 4, + 3, + 110, + 236, + 173, + 194, + 241, + 158, + 149, + 248, + 49, + 180, + 188, + 8, + 145, + 156, + 222, + 29, + 16, + 136, + 215, + 70, + 2, + 189, + 61, + 205, + 120, + 162, + ], + ), + ), + ], + }, + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 0, + }, + ), + ), + ), + ), + ], + ), + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 1596059092000, + }, + ), + ), + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ], + }, + ), + Array( + [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + ], + ), + Map( + Def( + [ + ( + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + ), + ), + BigInt( + Int( + Int( + Int { + neg: false, + val: 0, + }, + ), + ), + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + ], + }, + ), + ), + ( + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 4, + 3, + 110, + 236, + 173, + 194, + 241, + 158, + 149, + 248, + 49, + 180, + 188, + 8, + 145, + 156, + 222, + 29, + 16, + 136, + 215, + 70, + 2, + 189, + 61, + 205, + 120, + 162, + ], + ), + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + ), + ], + ), + ), + Map( + Def( + [], + ), + ), + BoundedBytes( + BoundedBytes( + [ + 64, + 190, + 227, + 178, + 90, + 88, + 90, + 133, + 79, + 231, + 63, + 52, + 72, + 166, + 246, + 180, + 23, + 254, + 102, + 156, + 129, + 58, + 24, + 129, + 230, + 101, + 151, + 31, + 52, + 169, + 233, + 132, + ], + ), + ), + Map( + Def( + [], + ), + ), + Array( + [], + ), + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [ + BigInt( + Int( + Int( + Int { + neg: false, + val: 1, + }, + ), + ), + ), + ], + }, + ), + ], + }, + ), + Constr( + Constr { + tag: 121, + any_constructor: None, + fields: [], + }, + ), + Constr( + Constr { + tag: 123, + any_constructor: None, + fields: [ + Constr( + Constr { + tag: 122, + any_constructor: None, + fields: [ + BoundedBytes( + BoundedBytes( + [ + 4, + 3, + 110, + 236, + 173, + 194, + 241, + 158, + 149, + 248, + 49, + 180, + 188, + 8, + 145, + 156, + 222, + 29, + 16, + 136, + 215, + 70, + 2, + 189, + 61, + 205, + 120, + 162, + ], + ), + ), + ], + }, + ), + ], + }, + ), + ], + }, +) diff --git a/crates/uplc/src/tx/tests.rs b/crates/uplc/src/tx/tests.rs index 3978288b..74e5e372 100644 --- a/crates/uplc/src/tx/tests.rs +++ b/crates/uplc/src/tx/tests.rs @@ -1,14 +1,12 @@ +use super::{eval_phase_two, ResolvedInput, SlotConfig}; +use crate::machine::cost_model::ExBudget; use pallas_codec::utils::MaybeIndefArray; use pallas_primitives::{ - babbage::{CostMdls, TransactionInput, TransactionOutput}, + conway::{CostMdls, TransactionInput, TransactionOutput}, Fragment, }; use pallas_traverse::{Era, MultiEraTx}; -use crate::machine::cost_model::ExBudget; - -use super::{eval_phase_two, ResolvedInput, SlotConfig}; - #[test] fn test_eval_0() { /* @@ -227,6 +225,7 @@ fn test_eval_0() { let cost_mdl = CostMdls { plutus_v1: None, plutus_v2: Some(costs), + plutus_v3: None, }; let initial_budget = ExBudget { @@ -234,11 +233,12 @@ fn test_eval_0() { mem: 14000000, }; - let multi_era_tx = MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes) + let multi_era_tx = MultiEraTx::decode_for_era(Era::Conway, &tx_bytes) + .or_else(|_| MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes)) .or_else(|_| MultiEraTx::decode_for_era(Era::Alonzo, &tx_bytes)) .unwrap(); match multi_era_tx { - MultiEraTx::Babbage(tx) => { + MultiEraTx::Conway(tx) => { let redeemers = eval_phase_two( &tx, &utxos, @@ -497,6 +497,7 @@ fn test_eval_1() { let cost_mdl = CostMdls { plutus_v1: None, plutus_v2: Some(costs), + plutus_v3: None, }; let initial_budget = ExBudget { @@ -504,11 +505,13 @@ fn test_eval_1() { mem: 14000000, }; - let multi_era_tx = MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes) + let multi_era_tx = MultiEraTx::decode_for_era(Era::Conway, &tx_bytes) + .or_else(|_| MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes)) .or_else(|_| MultiEraTx::decode_for_era(Era::Alonzo, &tx_bytes)) .unwrap(); + match multi_era_tx { - MultiEraTx::Babbage(tx) => { + MultiEraTx::Conway(tx) => { let redeemers = eval_phase_two( &tx, &utxos, @@ -606,6 +609,7 @@ fn test_eval_2() { let cost_mdl = CostMdls { plutus_v1: Some(costs), plutus_v2: None, + plutus_v3: None, }; let initial_budget = ExBudget { @@ -613,11 +617,12 @@ fn test_eval_2() { mem: 14000000, }; - let multi_era_tx = MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes) + let multi_era_tx = MultiEraTx::decode_for_era(Era::Conway, &tx_bytes) + .or_else(|_| MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes)) .or_else(|_| MultiEraTx::decode_for_era(Era::Alonzo, &tx_bytes)) .unwrap(); match multi_era_tx { - MultiEraTx::Babbage(tx) => { + MultiEraTx::Conway(tx) => { let redeemers = eval_phase_two( &tx, &utxos, @@ -874,6 +879,7 @@ fn test_eval_3() { let cost_mdl = CostMdls { plutus_v1: None, plutus_v2: Some(costs), + plutus_v3: None, }; let initial_budget = ExBudget { @@ -881,11 +887,12 @@ fn test_eval_3() { mem: 14000000, }; - let multi_era_tx = MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes) + let multi_era_tx = MultiEraTx::decode_for_era(Era::Conway, &tx_bytes) + .or_else(|_| MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes)) .or_else(|_| MultiEraTx::decode_for_era(Era::Alonzo, &tx_bytes)) .unwrap(); match multi_era_tx { - MultiEraTx::Babbage(tx) => { + MultiEraTx::Conway(tx) => { let redeemers = eval_phase_two( &tx, &utxos, @@ -980,6 +987,7 @@ fn test_eval_4() { let cost_mdl = CostMdls { plutus_v1: Some(costs), plutus_v2: None, + plutus_v3: None, }; let initial_budget = ExBudget { @@ -987,11 +995,12 @@ fn test_eval_4() { mem: 14000000, }; - let multi_era_tx = MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes) + let multi_era_tx = MultiEraTx::decode_for_era(Era::Conway, &tx_bytes) + .or_else(|_| MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes)) .or_else(|_| MultiEraTx::decode_for_era(Era::Alonzo, &tx_bytes)) .unwrap(); match multi_era_tx { - MultiEraTx::Babbage(tx) => { + MultiEraTx::Conway(tx) => { assert!(eval_phase_two( &tx, &utxos, @@ -1063,6 +1072,7 @@ fn test_eval_5() { let cost_mdl = CostMdls { plutus_v1: Some(costs), plutus_v2: None, + plutus_v3: None, }; let initial_budget = ExBudget { @@ -1070,11 +1080,12 @@ fn test_eval_5() { mem: 14000000, }; - let multi_era_tx = MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes) + let multi_era_tx = MultiEraTx::decode_for_era(Era::Conway, &tx_bytes) + .or_else(|_| MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes)) .or_else(|_| MultiEraTx::decode_for_era(Era::Alonzo, &tx_bytes)) .unwrap(); match multi_era_tx { - MultiEraTx::Babbage(tx) => { + MultiEraTx::Conway(tx) => { let redeemers = eval_phase_two( &tx, &utxos, @@ -1171,6 +1182,7 @@ fn test_eval_6() { let cost_mdl = CostMdls { plutus_v1: Some(costs), plutus_v2: None, + plutus_v3: None, }; let initial_budget = ExBudget { @@ -1178,11 +1190,12 @@ fn test_eval_6() { mem: 14000000, }; - let multi_era_tx = MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes) + let multi_era_tx = MultiEraTx::decode_for_era(Era::Conway, &tx_bytes) + .or_else(|_| MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes)) .or_else(|_| MultiEraTx::decode_for_era(Era::Alonzo, &tx_bytes)) .unwrap(); match multi_era_tx { - MultiEraTx::Babbage(tx) => { + MultiEraTx::Conway(tx) => { let redeemers = eval_phase_two( &tx, &utxos, @@ -1279,6 +1292,7 @@ fn test_eval_7() { let cost_mdl = CostMdls { plutus_v1: Some(costs), plutus_v2: None, + plutus_v3: None, }; let initial_budget = ExBudget { @@ -1286,11 +1300,12 @@ fn test_eval_7() { mem: 14000000, }; - let multi_era_tx = MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes) + let multi_era_tx = MultiEraTx::decode_for_era(Era::Conway, &tx_bytes) + .or_else(|_| MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes)) .or_else(|_| MultiEraTx::decode_for_era(Era::Alonzo, &tx_bytes)) .unwrap(); match multi_era_tx { - MultiEraTx::Babbage(tx) => { + MultiEraTx::Conway(tx) => { let redeemers = eval_phase_two( &tx, &utxos, @@ -1538,6 +1553,7 @@ fn test_eval_8() { let cost_mdl = CostMdls { plutus_v1: None, plutus_v2: Some(costs), + plutus_v3: None, }; let initial_budget = ExBudget { @@ -1545,11 +1561,12 @@ fn test_eval_8() { mem: 14000000, }; - let multi_era_tx = MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes) + let multi_era_tx = MultiEraTx::decode_for_era(Era::Conway, &tx_bytes) + .or_else(|_| MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes)) .or_else(|_| MultiEraTx::decode_for_era(Era::Alonzo, &tx_bytes)) .unwrap(); match multi_era_tx { - MultiEraTx::Babbage(tx) => { + MultiEraTx::Conway(tx) => { let redeemers = eval_phase_two( &tx, &utxos, @@ -1593,12 +1610,13 @@ fn test_eval_8() { fn eval_missing_redeemer() { let tx_bytes = hex::decode("84a30082825820275b5da338c8b899035081eb34bfa950b634911a5dd3271b3ad6cf4c2bba0c5000825820275b5da338c8b899035081eb34bfa950b634911a5dd3271b3ad6cf4c2bba0c50010181825839000af00cc47500bb64cfffb783e8c42f746b4e8b8a70ede9c08c7113acf3bde34d1041f5a2076ef9aa6cf4539ab1a96ed462a0300acbdb65d51a02cf47c8021a00028d89a1068149480100002221200101f5f6").unwrap(); - let multi_era_tx = MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes) + let multi_era_tx = MultiEraTx::decode_for_era(Era::Conway, &tx_bytes) + .or_else(|_| MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes)) .or_else(|_| MultiEraTx::decode_for_era(Era::Alonzo, &tx_bytes)) .unwrap(); let inputs = multi_era_tx - .as_babbage() + .as_conway() .unwrap() .transaction_body .inputs @@ -1641,6 +1659,7 @@ fn eval_missing_redeemer() { let cost_mdl = CostMdls { plutus_v1: Some(costs), plutus_v2: None, + plutus_v3: None, }; let initial_budget = ExBudget { @@ -1648,12 +1667,13 @@ fn eval_missing_redeemer() { mem: 14000000, }; - let multi_era_tx = MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes) + let multi_era_tx = MultiEraTx::decode_for_era(Era::Conway, &tx_bytes) + .or_else(|_| MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes)) .or_else(|_| MultiEraTx::decode_for_era(Era::Alonzo, &tx_bytes)) .unwrap(); match multi_era_tx { - MultiEraTx::Babbage(tx) => { + MultiEraTx::Conway(tx) => { eval_phase_two( &tx, &utxos, @@ -1673,12 +1693,13 @@ fn eval_missing_redeemer() { fn eval_extraneous_redeemer() { let tx_bytes = hex::decode("84a70082825820275b5da338c8b899035081eb34bfa950b634911a5dd3271b3ad6cf4c2bba0c5000825820275b5da338c8b899035081eb34bfa950b634911a5dd3271b3ad6cf4c2bba0c50010181825839000af00cc47500bb64cfffb783e8c42f746b4e8b8a70ede9c08c7113acf3bde34d1041f5a2076ef9aa6cf4539ab1a96ed462a0300acbdb65d51a02cf2b47021a0002aa0a0b5820fc54f302cff3a8a1cb374f5e4979e18a1d3627dcf4539637b03f5959eb8565bf0d81825820275b5da338c8b899035081eb34bfa950b634911a5dd3271b3ad6cf4c2bba0c500110825839000af00cc47500bb64cfffb783e8c42f746b4e8b8a70ede9c08c7113acf3bde34d1041f5a2076ef9aa6cf4539ab1a96ed462a0300acbdb65d51a02af51c2111a0003ff0fa40081825820065dd553fbe4e240a8f819bb9e333a7483de4a22b65c7fb6a95ce9450f84dff758402c26125a057a696079d08f2c8c9d2b8ccda9fe7cf7360c1a86712b85a91db82a3b80996b30ba6f4b2f969c93eb50694e0f6ea0bcf129080dcc07ecd9e605f00a049fd87980ff0582840000d879808219044c1a000382d48401001864821903e81903e8068149480100002221200101f5f6").unwrap(); - let multi_era_tx = MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes) + let multi_era_tx = MultiEraTx::decode_for_era(Era::Conway, &tx_bytes) + .or_else(|_| MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes)) .or_else(|_| MultiEraTx::decode_for_era(Era::Alonzo, &tx_bytes)) .unwrap(); let inputs = multi_era_tx - .as_babbage() + .as_conway() .unwrap() .transaction_body .inputs @@ -1721,6 +1742,7 @@ fn eval_extraneous_redeemer() { let cost_mdl = CostMdls { plutus_v1: Some(costs), plutus_v2: None, + plutus_v3: None, }; let initial_budget = ExBudget { @@ -1728,12 +1750,13 @@ fn eval_extraneous_redeemer() { mem: 14000000, }; - let multi_era_tx = MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes) + let multi_era_tx = MultiEraTx::decode_for_era(Era::Conway, &tx_bytes) + .or_else(|_| MultiEraTx::decode_for_era(Era::Babbage, &tx_bytes)) .or_else(|_| MultiEraTx::decode_for_era(Era::Alonzo, &tx_bytes)) .unwrap(); match multi_era_tx { - MultiEraTx::Babbage(tx) => { + MultiEraTx::Conway(tx) => { assert!(eval_phase_two( &tx, &utxos, diff --git a/crates/uplc/src/tx/to_plutus_data.rs b/crates/uplc/src/tx/to_plutus_data.rs index e96ee842..670f8654 100644 --- a/crates/uplc/src/tx/to_plutus_data.rs +++ b/crates/uplc/src/tx/to_plutus_data.rs @@ -1,26 +1,28 @@ -use pallas_addresses::{Address, ShelleyDelegationPart, ShelleyPaymentPart, StakePayload}; -use pallas_codec::utils::{AnyUInt, Bytes, Int, KeyValuePairs}; +use super::script_context::{ + ScriptContext, ScriptInfo, ScriptPurpose, TimeRange, TxInInfo, TxInfo, +}; +use crate::{ + ast::Data, + machine::runtime::{convert_constr_to_tag, ANY_TAG}, + tx::script_context::from_alonzo_output, +}; +use num_integer::Integer; +use pallas_addresses::{ + Address, ShelleyDelegationPart, ShelleyPaymentPart, StakeAddress, StakePayload, +}; +use pallas_codec::utils::{ + AnyUInt, Bytes, Int, KeyValuePairs, NonEmptyKeyValuePairs, Nullable, PositiveCoin, +}; use pallas_crypto::hash::Hash; -use pallas_primitives::babbage::{AssetName, BigInt, Constr, Mint, PlutusData, ScriptRef}; -use pallas_primitives::babbage::{ - Certificate, DatumOption, PseudoScript, Redeemer, StakeCredential, TransactionInput, - TransactionOutput, Value, +use pallas_primitives::conway::{ + AssetName, BigInt, Certificate, Coin, Constitution, Constr, DRep, DRepVotingThresholds, + DatumOption, ExUnitPrices, ExUnits, GovAction, GovActionId, Mint, PlutusData, PolicyId, + PoolVotingThresholds, ProposalProcedure, ProtocolParamUpdate, PseudoScript, RationalNumber, + Redeemer, ScriptRef, StakeCredential, TransactionInput, TransactionOutput, Value, Vote, Voter, + VotingProcedure, }; use pallas_traverse::ComputeHash; -use crate::machine::runtime::{convert_constr_to_tag, ANY_TAG}; - -use super::script_context::{ScriptContext, ScriptPurpose, TimeRange, TxInInfo, TxInfo, TxOut}; - -fn wrap_with_constr(index: u64, data: PlutusData) -> PlutusData { - let converted = convert_constr_to_tag(index); - PlutusData::Constr(Constr { - tag: converted.unwrap_or(ANY_TAG), - any_constructor: converted.map_or(Some(index), |_| None), - fields: vec![data], - }) -} - fn wrap_multiple_with_constr(index: u64, data: Vec) -> PlutusData { let converted = convert_constr_to_tag(index); PlutusData::Constr(Constr { @@ -30,15 +32,26 @@ fn wrap_multiple_with_constr(index: u64, data: Vec) -> PlutusData { }) } -fn empty_constr(index: u64) -> PlutusData { - let converted = convert_constr_to_tag(index); - PlutusData::Constr(Constr { - tag: converted.unwrap_or(ANY_TAG), - any_constructor: converted.map_or(Some(index), |_| None), - fields: vec![], - }) +fn wrap_with_constr(index: u64, data: PlutusData) -> PlutusData { + wrap_multiple_with_constr(index, vec![data]) } +fn empty_constr(index: u64) -> PlutusData { + wrap_multiple_with_constr(index, vec![]) +} + +struct WithWrappedTransactionId<'a, T>(&'a T); + +struct WithWrappedStakeCredential<'a, T>(&'a T); + +struct WithZeroAdaAsset<'a, T>(&'a T); + +struct WithOptionDatum<'a, T>(&'a T); + +struct WithArrayRational<'a, T>(&'a T); + +struct WithPartialCertificates<'a, T>(&'a T); + pub trait ToPlutusData { fn to_plutus_data(&self) -> PlutusData; } @@ -48,6 +61,23 @@ pub struct MintValue { pub mint_value: Mint, } +impl ToPlutusData for bool { + fn to_plutus_data(&self) -> PlutusData { + match self { + false => empty_constr(0), + true => empty_constr(1), + } + } +} +impl ToPlutusData for StakeAddress { + fn to_plutus_data(&self) -> PlutusData { + match self.payload() { + StakePayload::Stake(x) => wrap_with_constr(0, x.to_plutus_data()), + StakePayload::Script(x) => wrap_with_constr(1, x.to_plutus_data()), + } + } +} + impl ToPlutusData for Address { fn to_plutus_data(&self) -> PlutusData { match self { @@ -65,12 +95,16 @@ impl ToPlutusData for Address { }; let stake_part_plutus_data = match stake_part { - ShelleyDelegationPart::Key(stake_keyhash) => { - Some(StakeCredential::AddrKeyhash(*stake_keyhash)).to_plutus_data() - } - ShelleyDelegationPart::Script(script_hash) => { - Some(StakeCredential::Scripthash(*script_hash)).to_plutus_data() - } + ShelleyDelegationPart::Key(stake_keyhash) => Some(wrap_with_constr( + 0, + StakeCredential::AddrKeyhash(*stake_keyhash).to_plutus_data(), + )) + .to_plutus_data(), + ShelleyDelegationPart::Script(script_hash) => Some(wrap_with_constr( + 0, + StakeCredential::Scripthash(*script_hash).to_plutus_data(), + )) + .to_plutus_data(), ShelleyDelegationPart::Pointer(pointer) => Some(wrap_multiple_with_constr( 1, vec![ @@ -85,28 +119,30 @@ impl ToPlutusData for Address { wrap_multiple_with_constr(0, vec![payment_part_plutus_data, stake_part_plutus_data]) } - Address::Stake(stake_address) => { - // This is right now only used in Withdrawals (Reward account) - match stake_address.payload() { - StakePayload::Stake(stake_keyhash) => { - StakeCredential::AddrKeyhash(*stake_keyhash).to_plutus_data() - } - StakePayload::Script(script_hash) => { - StakeCredential::Scripthash(*script_hash).to_plutus_data() - } - } - } + Address::Stake(stake_address) => stake_address.to_plutus_data(), _ => unreachable!(), } } } +impl<'a> ToPlutusData for WithWrappedTransactionId<'a, TransactionInput> { + fn to_plutus_data(&self) -> PlutusData { + wrap_multiple_with_constr( + 0, + vec![ + wrap_with_constr(0, self.0.transaction_id.to_plutus_data()), + PlutusData::BigInt(BigInt::Int((self.0.index as i128).try_into().unwrap())), + ], + ) + } +} + impl ToPlutusData for TransactionInput { fn to_plutus_data(&self) -> PlutusData { wrap_multiple_with_constr( 0, vec![ - wrap_with_constr(0, self.transaction_id.to_plutus_data()), + self.transaction_id.to_plutus_data(), PlutusData::BigInt(BigInt::Int((self.index as i128).try_into().unwrap())), ], ) @@ -154,6 +190,19 @@ where } } +impl<'a> ToPlutusData for WithWrappedTransactionId<'a, KeyValuePairs> { + fn to_plutus_data(&self) -> PlutusData { + let mut data_vec: Vec<(PlutusData, PlutusData)> = vec![]; + for (key, value) in self.0.iter() { + data_vec.push(( + WithWrappedTransactionId(key).to_plutus_data(), + value.to_plutus_data(), + )) + } + PlutusData::Map(KeyValuePairs::Def(data_vec)) + } +} + impl ToPlutusData for Option { fn to_plutus_data(&self) -> PlutusData { match self { @@ -163,7 +212,6 @@ impl ToPlutusData for Option { } } -// Does this here surely overwrite Option from above for DatumOption? impl ToPlutusData for Option { // NoOutputDatum = 0 | OutputDatumHash = 1 | OutputDatum = 2 fn to_plutus_data(&self) -> PlutusData { @@ -207,73 +255,125 @@ impl ToPlutusData for i64 { } } +impl ToPlutusData for u32 { + fn to_plutus_data(&self) -> PlutusData { + PlutusData::BigInt(BigInt::Int(Int::try_from(*self as i128).unwrap())) + } +} + impl ToPlutusData for u64 { fn to_plutus_data(&self) -> PlutusData { PlutusData::BigInt(BigInt::Int(Int::try_from(*self as i128).unwrap())) } } +impl ToPlutusData for usize { + fn to_plutus_data(&self) -> PlutusData { + PlutusData::BigInt(BigInt::Int(Int::try_from(*self as i128).unwrap())) + } +} + +impl ToPlutusData for PositiveCoin { + fn to_plutus_data(&self) -> PlutusData { + u64::from(self).to_plutus_data() + } +} + +impl<'a> ToPlutusData for WithZeroAdaAsset<'a, Value> { + fn to_plutus_data(&self) -> PlutusData { + match self.0 { + Value::Coin(coin) => { + PlutusData::Map(KeyValuePairs::Def(vec![coin_to_plutus_data(coin)])) + } + Value::Multiasset(coin, multiassets) => value_to_plutus_data( + multiassets.iter(), + |amount| u64::from(amount).to_plutus_data(), + vec![coin_to_plutus_data(coin)], + ), + } + } +} + impl ToPlutusData for Value { fn to_plutus_data(&self) -> PlutusData { match self { - Value::Coin(coin) => PlutusData::Map(KeyValuePairs::Def(vec![( + Value::Coin(coin) => PlutusData::Map(KeyValuePairs::Def(if *coin > 0 { + vec![coin_to_plutus_data(coin)] + } else { + vec![] + })), + Value::Multiasset(coin, multiassets) => value_to_plutus_data( + multiassets.iter(), + |amount| u64::from(amount).to_plutus_data(), + if *coin > 0 { + vec![coin_to_plutus_data(coin)] + } else { + vec![] + }, + ), + } + } +} + +impl<'a> ToPlutusData for WithZeroAdaAsset<'a, MintValue> { + fn to_plutus_data(&self) -> PlutusData { + value_to_plutus_data( + self.0.mint_value.iter(), + |amount| i64::from(amount).to_plutus_data(), + vec![( Bytes::from(vec![]).to_plutus_data(), PlutusData::Map(KeyValuePairs::Def(vec![( AssetName::from(vec![]).to_plutus_data(), - coin.to_plutus_data(), + 0_i64.to_plutus_data(), )])), - )])), - Value::Multiasset(coin, multiassets) => { - let mut data_vec: Vec<(PlutusData, PlutusData)> = vec![( - Bytes::from(vec![]).to_plutus_data(), - PlutusData::Map(KeyValuePairs::Def(vec![( - AssetName::from(vec![]).to_plutus_data(), - coin.to_plutus_data(), - )])), - )]; - - for (policy_id, assets) in multiassets.iter() { - let mut assets_vec = vec![]; - for (asset, amount) in assets.iter() { - assets_vec.push((asset.to_plutus_data(), amount.to_plutus_data())); - } - data_vec.push(( - policy_id.to_plutus_data(), - PlutusData::Map(KeyValuePairs::Def(assets_vec)), - )); - } - - PlutusData::Map(KeyValuePairs::Def(data_vec)) - } - } + )], + ) } } impl ToPlutusData for MintValue { fn to_plutus_data(&self) -> PlutusData { - let mut data_vec: Vec<(PlutusData, PlutusData)> = vec![( - Bytes::from(vec![]).to_plutus_data(), - PlutusData::Map(KeyValuePairs::Def(vec![( - AssetName::from(vec![]).to_plutus_data(), - 0_i64.to_plutus_data(), - )])), - )]; - - for (policy_id, assets) in self.mint_value.iter() { - let mut assets_vec = vec![]; - for (asset, amount) in assets.iter() { - assets_vec.push((asset.to_plutus_data(), amount.to_plutus_data())); - } - data_vec.push(( - policy_id.to_plutus_data(), - PlutusData::Map(KeyValuePairs::Def(assets_vec)), - )); - } - - PlutusData::Map(KeyValuePairs::Def(data_vec)) + value_to_plutus_data( + self.mint_value.iter(), + |amount| i64::from(amount).to_plutus_data(), + vec![], + ) } } +fn value_to_plutus_data<'a, I, Q>( + mint: I, + from_quantity: fn(&'a Q) -> PlutusData, + mut data_vec: Vec<(PlutusData, PlutusData)>, +) -> PlutusData +where + I: Iterator)>, + Q: Clone, +{ + for (policy_id, assets) in mint { + let mut assets_vec = vec![]; + for (asset, amount) in assets.iter() { + assets_vec.push((asset.to_plutus_data(), from_quantity(amount))); + } + data_vec.push(( + policy_id.to_plutus_data(), + PlutusData::Map(KeyValuePairs::Def(assets_vec)), + )); + } + + PlutusData::Map(KeyValuePairs::Def(data_vec)) +} + +fn coin_to_plutus_data(coin: &Coin) -> (PlutusData, PlutusData) { + ( + Bytes::from(vec![]).to_plutus_data(), + PlutusData::Map(KeyValuePairs::Def(vec![( + AssetName::from(vec![]).to_plutus_data(), + coin.to_plutus_data(), + )])), + ) +} + impl ToPlutusData for ScriptRef { fn to_plutus_data(&self) -> PlutusData { match &self { @@ -282,98 +382,143 @@ impl ToPlutusData for ScriptRef { } PseudoScript::PlutusV1Script(plutus_v1) => plutus_v1.compute_hash().to_plutus_data(), PseudoScript::PlutusV2Script(plutus_v2) => plutus_v2.compute_hash().to_plutus_data(), + PseudoScript::PlutusV3Script(plutus_v3) => plutus_v3.compute_hash().to_plutus_data(), } } } -impl ToPlutusData for TxOut { +impl<'a> ToPlutusData for WithOptionDatum<'a, WithZeroAdaAsset<'a, Vec>> { + fn to_plutus_data(&self) -> PlutusData { + PlutusData::Array( + self.0 + .0 + .iter() + .map(|p| WithOptionDatum(&WithZeroAdaAsset(p)).to_plutus_data()) + .collect(), + ) + } +} + +impl<'a> ToPlutusData for WithZeroAdaAsset<'a, Vec> { + fn to_plutus_data(&self) -> PlutusData { + PlutusData::Array( + self.0 + .iter() + .map(|p| WithZeroAdaAsset(p).to_plutus_data()) + .collect(), + ) + } +} + +impl<'a> ToPlutusData for WithOptionDatum<'a, WithZeroAdaAsset<'a, TransactionOutput>> { + fn to_plutus_data(&self) -> PlutusData { + match self.0 .0 { + TransactionOutput::Legacy(legacy_output) => { + WithOptionDatum(&WithZeroAdaAsset(&from_alonzo_output(legacy_output))) + .to_plutus_data() + } + + TransactionOutput::PostAlonzo(post_alonzo_output) => wrap_multiple_with_constr( + 0, + vec![ + Address::from_bytes(&post_alonzo_output.address) + .unwrap() + .to_plutus_data(), + WithZeroAdaAsset(&post_alonzo_output.value).to_plutus_data(), + match post_alonzo_output.datum_option { + Some(DatumOption::Hash(hash)) => Some(hash).to_plutus_data(), + _ => None::>.to_plutus_data(), + }, + ], + ), + } + } +} + +impl<'a> ToPlutusData for WithZeroAdaAsset<'a, TransactionOutput> { + fn to_plutus_data(&self) -> PlutusData { + match self.0 { + TransactionOutput::Legacy(legacy_output) => { + WithZeroAdaAsset(&from_alonzo_output(legacy_output)).to_plutus_data() + } + TransactionOutput::PostAlonzo(post_alonzo_output) => wrap_multiple_with_constr( + 0, + vec![ + Address::from_bytes(&post_alonzo_output.address) + .unwrap() + .to_plutus_data(), + WithZeroAdaAsset(&post_alonzo_output.value).to_plutus_data(), + post_alonzo_output.datum_option.to_plutus_data(), + post_alonzo_output + .script_ref + .as_ref() + .map(|s| s.clone().unwrap()) + .to_plutus_data(), + ], + ), + } + } +} + +impl ToPlutusData for TransactionOutput { fn to_plutus_data(&self) -> PlutusData { match self { - TxOut::V1(output) => match output { - TransactionOutput::Legacy(legacy_output) => wrap_multiple_with_constr( - 0, - vec![ - Address::from_bytes(&legacy_output.address) - .unwrap() - .to_plutus_data(), - legacy_output.amount.to_plutus_data(), - legacy_output.datum_hash.to_plutus_data(), - ], - ), - TransactionOutput::PostAlonzo(post_alonzo_output) => wrap_multiple_with_constr( - 0, - vec![ - Address::from_bytes(&post_alonzo_output.address) - .unwrap() - .to_plutus_data(), - post_alonzo_output.value.to_plutus_data(), - match post_alonzo_output.datum_option { - Some(DatumOption::Hash(hash)) => Some(hash).to_plutus_data(), - _ => None::>.to_plutus_data(), - }, - ], - ), - }, - TxOut::V2(output) => match output { - TransactionOutput::Legacy(legacy_output) => wrap_multiple_with_constr( - 0, - vec![ - Address::from_bytes(&legacy_output.address) - .unwrap() - .to_plutus_data(), - legacy_output.amount.to_plutus_data(), - match legacy_output.datum_hash { - Some(hash) => wrap_with_constr(1, hash.to_plutus_data()), - _ => empty_constr(0), - }, - None::.to_plutus_data(), - ], - ), - TransactionOutput::PostAlonzo(post_alonzo_output) => wrap_multiple_with_constr( - 0, - vec![ - Address::from_bytes(&post_alonzo_output.address) - .unwrap() - .to_plutus_data(), - post_alonzo_output.value.to_plutus_data(), - post_alonzo_output.datum_option.to_plutus_data(), - post_alonzo_output - .script_ref - .as_ref() - .map(|s| s.clone().unwrap()) - .to_plutus_data(), - ], - ), - }, + TransactionOutput::Legacy(legacy_output) => { + from_alonzo_output(legacy_output).to_plutus_data() + } + TransactionOutput::PostAlonzo(post_alonzo_output) => wrap_multiple_with_constr( + 0, + vec![ + Address::from_bytes(&post_alonzo_output.address) + .unwrap() + .to_plutus_data(), + post_alonzo_output.value.to_plutus_data(), + post_alonzo_output.datum_option.to_plutus_data(), + post_alonzo_output + .script_ref + .as_ref() + .map(|s| s.clone().unwrap()) + .to_plutus_data(), + ], + ), } } } impl ToPlutusData for StakeCredential { - // Stake Credential needs to be wrapped inside another Constr, because we could have either a StakingHash or a StakingPtr - // The current implementation of StakeCredential doesn't capture the credential of a Pointer address. - // So a StakeCredential for a Pointer address needs to be converted separately fn to_plutus_data(&self) -> PlutusData { match self { StakeCredential::AddrKeyhash(addr_keyhas) => { - wrap_with_constr(0, wrap_with_constr(0, addr_keyhas.to_plutus_data())) + wrap_with_constr(0, addr_keyhas.to_plutus_data()) } StakeCredential::Scripthash(script_hash) => { - wrap_with_constr(0, wrap_with_constr(1, script_hash.to_plutus_data())) + wrap_with_constr(1, script_hash.to_plutus_data()) } } } } -impl ToPlutusData for Certificate { +impl<'a> ToPlutusData for WithPartialCertificates<'a, Vec> { fn to_plutus_data(&self) -> PlutusData { - match self { + self.0 + .iter() + .map(WithPartialCertificates) + .collect::>() + .to_plutus_data() + } +} + +impl<'a> ToPlutusData for WithPartialCertificates<'a, Certificate> { + fn to_plutus_data(&self) -> PlutusData { + match self.0 { Certificate::StakeRegistration(stake_credential) => { wrap_with_constr(0, stake_credential.to_plutus_data()) } + Certificate::StakeDeregistration(stake_credential) => { wrap_with_constr(1, stake_credential.to_plutus_data()) } + Certificate::StakeDelegation(stake_credential, pool_keyhash) => { wrap_multiple_with_constr( 2, @@ -383,6 +528,7 @@ impl ToPlutusData for Certificate { ], ) } + Certificate::PoolRegistration { operator, vrf_keyhash, @@ -397,12 +543,181 @@ impl ToPlutusData for Certificate { 3, vec![operator.to_plutus_data(), vrf_keyhash.to_plutus_data()], ), + Certificate::PoolRetirement(pool_keyhash, epoch) => wrap_multiple_with_constr( 4, vec![pool_keyhash.to_plutus_data(), epoch.to_plutus_data()], ), - Certificate::GenesisKeyDelegation(_, _, _) => empty_constr(5), - Certificate::MoveInstantaneousRewardsCert(_) => empty_constr(6), + + certificate => unreachable!("unexpected in V1/V2 script context: {certificate:?}"), + } + } +} + +impl ToPlutusData for Certificate { + fn to_plutus_data(&self) -> PlutusData { + match self { + Certificate::StakeRegistration(stake_credential) => wrap_multiple_with_constr( + 0, + vec![ + stake_credential.to_plutus_data(), + None::.to_plutus_data(), + ], + ), + + Certificate::Reg(stake_credential, deposit) => wrap_multiple_with_constr( + 0, + vec![ + stake_credential.to_plutus_data(), + Some(*deposit).to_plutus_data(), + ], + ), + + Certificate::StakeDeregistration(stake_credential) => wrap_multiple_with_constr( + 1, + vec![ + stake_credential.to_plutus_data(), + None::.to_plutus_data(), + ], + ), + + Certificate::UnReg(stake_credential, deposit) => wrap_multiple_with_constr( + 1, + vec![ + stake_credential.to_plutus_data(), + Some(*deposit).to_plutus_data(), + ], + ), + + Certificate::StakeDelegation(stake_credential, pool_id) => wrap_multiple_with_constr( + 2, + vec![ + stake_credential.to_plutus_data(), + wrap_with_constr(0, pool_id.to_plutus_data()), + ], + ), + + Certificate::VoteDeleg(stake_credential, drep) => wrap_multiple_with_constr( + 2, + vec![ + stake_credential.to_plutus_data(), + wrap_with_constr(1, drep.to_plutus_data()), + ], + ), + + Certificate::StakeVoteDeleg(stake_credential, pool_id, drep) => { + wrap_multiple_with_constr( + 2, + vec![ + stake_credential.to_plutus_data(), + wrap_multiple_with_constr( + 2, + vec![pool_id.to_plutus_data(), drep.to_plutus_data()], + ), + ], + ) + } + + Certificate::StakeRegDeleg(stake_credential, pool_id, deposit) => { + wrap_multiple_with_constr( + 3, + vec![ + stake_credential.to_plutus_data(), + wrap_multiple_with_constr(0, vec![pool_id.to_plutus_data()]), + deposit.to_plutus_data(), + ], + ) + } + + Certificate::VoteRegDeleg(stake_credential, drep, deposit) => { + wrap_multiple_with_constr( + 3, + vec![ + stake_credential.to_plutus_data(), + wrap_multiple_with_constr(1, vec![drep.to_plutus_data()]), + deposit.to_plutus_data(), + ], + ) + } + + Certificate::StakeVoteRegDeleg(stake_credential, pool_id, drep, deposit) => { + wrap_multiple_with_constr( + 3, + vec![ + stake_credential.to_plutus_data(), + wrap_multiple_with_constr( + 2, + vec![pool_id.to_plutus_data(), drep.to_plutus_data()], + ), + deposit.to_plutus_data(), + ], + ) + } + + Certificate::RegDRepCert(drep_credential, deposit, _anchor) => { + wrap_multiple_with_constr( + 4, + vec![drep_credential.to_plutus_data(), deposit.to_plutus_data()], + ) + } + + Certificate::UpdateDRepCert(drep_credential, _anchor) => { + wrap_multiple_with_constr(5, vec![drep_credential.to_plutus_data()]) + } + + Certificate::UnRegDRepCert(drep_credential, deposit) => wrap_multiple_with_constr( + 6, + vec![drep_credential.to_plutus_data(), deposit.to_plutus_data()], + ), + + Certificate::PoolRegistration { + operator, + vrf_keyhash, + pledge: _, + cost: _, + margin: _, + reward_account: _, + pool_owners: _, + relays: _, + pool_metadata: _, + } => wrap_multiple_with_constr( + 7, + vec![operator.to_plutus_data(), vrf_keyhash.to_plutus_data()], + ), + + Certificate::PoolRetirement(pool_keyhash, epoch) => wrap_multiple_with_constr( + 8, + vec![pool_keyhash.to_plutus_data(), epoch.to_plutus_data()], + ), + + Certificate::AuthCommitteeHot(cold_credential, hot_credential) => { + wrap_multiple_with_constr( + 9, + vec![ + cold_credential.to_plutus_data(), + hot_credential.to_plutus_data(), + ], + ) + } + + Certificate::ResignCommitteeCold(cold_credential, _anchor) => { + wrap_multiple_with_constr(10, vec![cold_credential.to_plutus_data()]) + } + } + } +} + +impl ToPlutusData for DRep { + fn to_plutus_data(&self) -> PlutusData { + match self { + DRep::Key(hash) => { + wrap_with_constr(0, StakeCredential::AddrKeyhash(*hash).to_plutus_data()) + } + DRep::Script(hash) => { + wrap_with_constr(0, StakeCredential::Scripthash(*hash).to_plutus_data()) + } + DRep::Abstain => empty_constr(1), + DRep::NoConfidence => empty_constr(2), } } } @@ -421,127 +736,90 @@ impl ToPlutusData for PlutusData { impl ToPlutusData for TimeRange { fn to_plutus_data(&self) -> PlutusData { - match &self { - TimeRange { - lower_bound: Some(lower_bound), - upper_bound: None, - } => { - wrap_multiple_with_constr( + fn bound(bound: Option, is_lower: bool) -> PlutusData { + match bound { + Some(x) => wrap_multiple_with_constr( 0, vec![ - // LowerBound - wrap_multiple_with_constr( - 0, - vec![ - // Finite - wrap_with_constr(1, lower_bound.to_plutus_data()), - // Closure - true.to_plutus_data(), - ], - ), //UpperBound - wrap_multiple_with_constr( - 0, - vec![ - // PosInf - empty_constr(2), - // Closure - true.to_plutus_data(), - ], - ), + wrap_with_constr(1, x.to_plutus_data()), + // NOTE: Finite lower bounds are always inclusive, unlike upper bounds. + is_lower.to_plutus_data(), ], - ) - } - TimeRange { - lower_bound: None, - upper_bound: Some(upper_bound), - } => { - wrap_multiple_with_constr( + ), + None => wrap_multiple_with_constr( 0, vec![ - // LowerBound - wrap_multiple_with_constr( - 0, - vec![ - // NegInf - empty_constr(0), - // Closure - true.to_plutus_data(), - ], - ), - //UpperBound - wrap_multiple_with_constr( - 0, - vec![ - // Finite - wrap_with_constr(1, upper_bound.to_plutus_data()), - // Closure - true.to_plutus_data(), - ], - ), + empty_constr(if is_lower { 0 } else { 2 }), + // NOTE: Infinite bounds are always exclusive, by convention. + true.to_plutus_data(), ], - ) - } - TimeRange { - lower_bound: Some(lower_bound), - upper_bound: Some(upper_bound), - } => { - wrap_multiple_with_constr( - 0, - vec![ - // LowerBound - wrap_multiple_with_constr( - 0, - vec![ - // Finite - wrap_with_constr(1, lower_bound.to_plutus_data()), - // Closure - true.to_plutus_data(), - ], - ), - //UpperBound - wrap_multiple_with_constr( - 0, - vec![ - // Finite - wrap_with_constr(1, upper_bound.to_plutus_data()), - // Closure - false.to_plutus_data(), - ], - ), - ], - ) - } - TimeRange { - lower_bound: None, - upper_bound: None, - } => { - wrap_multiple_with_constr( - 0, - vec![ - // LowerBound - wrap_multiple_with_constr( - 0, - vec![ - // NegInf - empty_constr(0), - // Closure - true.to_plutus_data(), - ], - ), - //UpperBound - wrap_multiple_with_constr( - 0, - vec![ - // PosInf - empty_constr(2), - // Closure - true.to_plutus_data(), - ], - ), - ], - ) + ), } } + + wrap_multiple_with_constr( + 0, + vec![ + bound(self.lower_bound, true), + bound(self.upper_bound, false), + ], + ) + } +} + +impl<'a> ToPlutusData + for WithOptionDatum<'a, WithZeroAdaAsset<'a, WithWrappedTransactionId<'a, Vec>>> +{ + fn to_plutus_data(&self) -> PlutusData { + PlutusData::Array( + self.0 + .0 + .0 + .iter() + .map(|p| { + WithOptionDatum(&WithZeroAdaAsset(&WithWrappedTransactionId(p))) + .to_plutus_data() + }) + .collect(), + ) + } +} + +impl<'a> ToPlutusData for WithZeroAdaAsset<'a, WithWrappedTransactionId<'a, Vec>> { + fn to_plutus_data(&self) -> PlutusData { + PlutusData::Array( + self.0 + .0 + .iter() + .map(|p| WithZeroAdaAsset(&WithWrappedTransactionId(p)).to_plutus_data()) + .collect(), + ) + } +} + +impl<'a> ToPlutusData for WithZeroAdaAsset<'a, WithWrappedTransactionId<'a, TxInInfo>> { + fn to_plutus_data(&self) -> PlutusData { + wrap_multiple_with_constr( + 0, + vec![ + WithWrappedTransactionId(&self.0 .0.out_ref).to_plutus_data(), + WithZeroAdaAsset(&self.0 .0.resolved).to_plutus_data(), + ], + ) + } +} + +impl<'a> ToPlutusData + for WithOptionDatum<'a, WithZeroAdaAsset<'a, WithWrappedTransactionId<'a, TxInInfo>>> +{ + fn to_plutus_data(&self) -> PlutusData { + wrap_multiple_with_constr( + 0, + vec![ + WithWrappedTransactionId(&self.0 .0 .0.out_ref).to_plutus_data(), + WithOptionDatum(&WithZeroAdaAsset(&self.0 .0 .0.resolved)).to_plutus_data(), + ], + ) } } @@ -557,15 +835,431 @@ impl ToPlutusData for TxInInfo { } } +impl<'a> ToPlutusData for WithWrappedTransactionId<'a, ScriptPurpose> { + fn to_plutus_data(&self) -> PlutusData { + match self.0 { + ScriptPurpose::Spending(out_ref, ()) => { + wrap_with_constr(1, WithWrappedTransactionId(out_ref).to_plutus_data()) + } + // NOTE: This is a _small_ abuse of the 'WithWrappedTransactionId'. We know the wrapped + // is needed for V1 and V2, and it also appears that for V1 and V2, the certifying + // purpose mustn't include the certificate index. So, we also short-circuit it here. + ScriptPurpose::Certifying(_, dcert) => wrap_with_constr(3, dcert.to_plutus_data()), + otherwise => otherwise.to_plutus_data(), + } + } +} + impl ToPlutusData for ScriptPurpose { fn to_plutus_data(&self) -> PlutusData { match self { ScriptPurpose::Minting(policy_id) => wrap_with_constr(0, policy_id.to_plutus_data()), - ScriptPurpose::Spending(out_ref) => wrap_with_constr(1, out_ref.to_plutus_data()), + ScriptPurpose::Spending(out_ref, ()) => wrap_with_constr(1, out_ref.to_plutus_data()), ScriptPurpose::Rewarding(stake_credential) => { wrap_with_constr(2, stake_credential.to_plutus_data()) } - ScriptPurpose::Certifying(dcert) => wrap_with_constr(3, dcert.to_plutus_data()), + ScriptPurpose::Certifying(ix, dcert) => { + wrap_multiple_with_constr(3, vec![ix.to_plutus_data(), dcert.to_plutus_data()]) + } + ScriptPurpose::Voting(voter) => { + wrap_multiple_with_constr(4, vec![voter.to_plutus_data()]) + } + ScriptPurpose::Proposing(ix, procedure) => { + wrap_multiple_with_constr(5, vec![ix.to_plutus_data(), procedure.to_plutus_data()]) + } + } + } +} + +impl ToPlutusData for ProposalProcedure { + fn to_plutus_data(&self) -> PlutusData { + wrap_multiple_with_constr( + 0, + vec![ + self.deposit.to_plutus_data(), + Address::from_bytes(&self.reward_account) + .unwrap() + .to_plutus_data(), + self.gov_action.to_plutus_data(), + ], + ) + } +} + +impl ToPlutusData for Nullable +where + T: ToPlutusData + Clone, +{ + fn to_plutus_data(&self) -> PlutusData { + match self { + Nullable::Some(t) => wrap_with_constr(0, t.to_plutus_data()), + Nullable::Null | Nullable::Undefined => empty_constr(1), + } + } +} + +impl ToPlutusData for GovActionId { + fn to_plutus_data(&self) -> PlutusData { + wrap_multiple_with_constr( + 0, + vec![ + self.transaction_id.to_plutus_data(), + self.action_index.to_plutus_data(), + ], + ) + } +} + +impl ToPlutusData for ProtocolParamUpdate { + fn to_plutus_data(&self) -> PlutusData { + let mut pparams = Vec::with_capacity(30); + + let mut push = |ix: usize, p: PlutusData| { + pparams.push((ix.to_plutus_data(), p)); + }; + + if let Some(p) = self.minfee_a { + push(0, p.to_plutus_data()); + } + + if let Some(p) = self.minfee_b { + push(1, p.to_plutus_data()); + } + + if let Some(p) = self.max_block_body_size { + push(2, p.to_plutus_data()); + } + + if let Some(p) = self.max_transaction_size { + push(3, p.to_plutus_data()); + } + + if let Some(p) = self.max_block_header_size { + push(4, p.to_plutus_data()); + } + + if let Some(p) = self.key_deposit { + push(5, p.to_plutus_data()); + } + + if let Some(p) = self.pool_deposit { + push(6, p.to_plutus_data()); + } + + if let Some(p) = self.maximum_epoch { + push(7, p.to_plutus_data()); + } + + if let Some(p) = self.desired_number_of_stake_pools { + push(8, p.to_plutus_data()); + } + + if let Some(ref p) = self.pool_pledge_influence { + push(9, WithArrayRational(p).to_plutus_data()); + } + + if let Some(ref p) = self.expansion_rate { + push(10, WithArrayRational(p).to_plutus_data()); + } + + if let Some(ref p) = self.treasury_growth_rate { + push(11, WithArrayRational(p).to_plutus_data()); + } + + if let Some(p) = self.min_pool_cost { + push(16, p.to_plutus_data()); + } + + if let Some(p) = self.ada_per_utxo_byte { + push(17, p.to_plutus_data()); + } + + #[allow(clippy::redundant_pattern_matching)] + if let Some(_) = self.cost_models_for_script_languages { + unimplemented!("TODO: ToPlutusData for cost models."); + } + + if let Some(ref p) = self.execution_costs { + push(19, p.to_plutus_data()); + } + + if let Some(p) = self.max_tx_ex_units { + push(20, p.to_plutus_data()); + } + + if let Some(p) = self.max_block_ex_units { + push(21, p.to_plutus_data()); + } + + if let Some(p) = self.max_value_size { + push(22, p.to_plutus_data()); + } + + if let Some(p) = self.collateral_percentage { + push(23, p.to_plutus_data()); + } + + if let Some(p) = self.max_collateral_inputs { + push(24, p.to_plutus_data()); + } + + if let Some(ref p) = self.pool_voting_thresholds { + push(25, p.to_plutus_data()); + } + + if let Some(ref p) = self.drep_voting_thresholds { + push(26, p.to_plutus_data()); + } + + if let Some(p) = self.min_committee_size { + push(27, p.to_plutus_data()); + } + + if let Some(p) = self.committee_term_limit { + push(28, p.to_plutus_data()); + } + + if let Some(p) = self.governance_action_validity_period { + push(29, p.to_plutus_data()); + } + + if let Some(p) = self.governance_action_deposit { + push(30, p.to_plutus_data()); + } + + if let Some(p) = self.drep_deposit { + push(31, p.to_plutus_data()); + } + + if let Some(p) = self.drep_inactivity_period { + push(32, p.to_plutus_data()); + } + + if let Some(ref p) = self.minfee_refscript_cost_per_byte { + push(33, WithArrayRational(p).to_plutus_data()); + } + + Data::map(pparams) + } +} + +impl ToPlutusData for PoolVotingThresholds { + fn to_plutus_data(&self) -> PlutusData { + vec![ + WithArrayRational(&self.motion_no_confidence).to_plutus_data(), + WithArrayRational(&self.committee_normal).to_plutus_data(), + WithArrayRational(&self.committee_no_confidence).to_plutus_data(), + WithArrayRational(&self.hard_fork_initiation).to_plutus_data(), + WithArrayRational(&self.security_voting_threshold).to_plutus_data(), + ] + .to_plutus_data() + } +} + +impl ToPlutusData for DRepVotingThresholds { + fn to_plutus_data(&self) -> PlutusData { + vec![ + WithArrayRational(&self.motion_no_confidence).to_plutus_data(), + WithArrayRational(&self.committee_normal).to_plutus_data(), + WithArrayRational(&self.committee_no_confidence).to_plutus_data(), + WithArrayRational(&self.update_constitution).to_plutus_data(), + WithArrayRational(&self.hard_fork_initiation).to_plutus_data(), + WithArrayRational(&self.pp_network_group).to_plutus_data(), + WithArrayRational(&self.pp_economic_group).to_plutus_data(), + WithArrayRational(&self.pp_technical_group).to_plutus_data(), + WithArrayRational(&self.pp_governance_group).to_plutus_data(), + WithArrayRational(&self.treasury_withdrawal).to_plutus_data(), + ] + .to_plutus_data() + } +} + +impl ToPlutusData for ExUnitPrices { + fn to_plutus_data(&self) -> PlutusData { + vec![ + WithArrayRational(&self.mem_price).to_plutus_data(), + WithArrayRational(&self.step_price).to_plutus_data(), + ] + .to_plutus_data() + } +} + +impl ToPlutusData for ExUnits { + fn to_plutus_data(&self) -> PlutusData { + vec![self.mem.to_plutus_data(), self.steps.to_plutus_data()].to_plutus_data() + } +} + +impl ToPlutusData for GovAction { + fn to_plutus_data(&self) -> PlutusData { + match self { + GovAction::ParameterChange(previous_action, params, guardrail) => { + wrap_multiple_with_constr( + 0, + vec![ + previous_action.to_plutus_data(), + params.as_ref().to_plutus_data(), + guardrail.to_plutus_data(), + ], + ) + } + GovAction::HardForkInitiation(previous_action, version) => wrap_multiple_with_constr( + 1, + vec![previous_action.to_plutus_data(), version.to_plutus_data()], + ), + GovAction::TreasuryWithdrawals(withdrawals, guardrail) => wrap_multiple_with_constr( + 2, + vec![ + KeyValuePairs::from( + withdrawals + .iter() + .map(|(reward_account, amount)| { + ( + Address::from_bytes(reward_account) + .expect("Invalid stake address in treasury withdrawal?"), + *amount, + ) + }) + .collect::>(), + ) + .to_plutus_data(), + guardrail.to_plutus_data(), + ], + ), + GovAction::NoConfidence(previous_action) => { + wrap_with_constr(3, previous_action.to_plutus_data()) + } + GovAction::UpdateCommittee(previous_action, removed, added, quorum) => { + wrap_multiple_with_constr( + 4, + vec![ + previous_action.to_plutus_data(), + removed.to_plutus_data(), + added.to_plutus_data(), + quorum.to_plutus_data(), + ], + ) + } + GovAction::NewConstitution(previous_action, constitution) => wrap_multiple_with_constr( + 5, + vec![ + previous_action.to_plutus_data(), + constitution.to_plutus_data(), + ], + ), + GovAction::Information => empty_constr(6), + } + } +} + +impl ToPlutusData for Constitution { + fn to_plutus_data(&self) -> PlutusData { + wrap_with_constr(0, self.guardrail_script.to_plutus_data()) + } +} + +impl ToPlutusData for RationalNumber { + fn to_plutus_data(&self) -> PlutusData { + let gcd = self.numerator.gcd(&self.denominator); + (self.numerator / gcd, self.denominator / gcd).to_plutus_data() + } +} + +impl<'a> ToPlutusData for WithArrayRational<'a, RationalNumber> { + fn to_plutus_data(&self) -> PlutusData { + let gcd = self.0.numerator.gcd(&self.0.denominator); + vec![self.0.numerator / gcd, self.0.denominator / gcd].to_plutus_data() + } +} + +impl<'a> ToPlutusData for WithWrappedStakeCredential<'a, Vec<(Address, Coin)>> { + fn to_plutus_data(&self) -> PlutusData { + self.0 + .iter() + .map(|(reward_account, amount)| { + ( + wrap_with_constr(0, reward_account.to_plutus_data()), + *amount, + ) + }) + .collect::>() + .to_plutus_data() + } +} + +impl<'a> ToPlutusData for WithWrappedStakeCredential<'a, KeyValuePairs> { + fn to_plutus_data(&self) -> PlutusData { + KeyValuePairs::from( + self.0 + .iter() + .map(|(reward_account, amount)| { + ( + wrap_with_constr(0, reward_account.to_plutus_data()), + *amount, + ) + }) + .collect::>(), + ) + .to_plutus_data() + } +} + +impl ToPlutusData for Voter { + fn to_plutus_data(&self) -> PlutusData { + match self { + Voter::ConstitutionalCommitteeScript(hash) => { + wrap_with_constr(0, StakeCredential::Scripthash(*hash).to_plutus_data()) + } + Voter::ConstitutionalCommitteeKey(hash) => { + wrap_with_constr(0, StakeCredential::AddrKeyhash(*hash).to_plutus_data()) + } + Voter::DRepScript(hash) => { + wrap_with_constr(1, StakeCredential::Scripthash(*hash).to_plutus_data()) + } + Voter::DRepKey(hash) => { + wrap_with_constr(1, StakeCredential::AddrKeyhash(*hash).to_plutus_data()) + } + Voter::StakePoolKey(hash) => wrap_with_constr(2, hash.to_plutus_data()), + } + } +} + +impl ToPlutusData for VotingProcedure { + fn to_plutus_data(&self) -> PlutusData { + self.vote.to_plutus_data() + } +} + +impl ToPlutusData for Vote { + fn to_plutus_data(&self) -> PlutusData { + match self { + Vote::No => empty_constr(0), + Vote::Yes => empty_constr(1), + Vote::Abstain => empty_constr(2), + } + } +} + +impl ToPlutusData for ScriptInfo +where + T: ToPlutusData, +{ + fn to_plutus_data(&self) -> PlutusData { + match self { + ScriptInfo::Minting(policy_id) => wrap_with_constr(0, policy_id.to_plutus_data()), + ScriptInfo::Spending(out_ref, datum) => { + wrap_multiple_with_constr(1, vec![out_ref.to_plutus_data(), datum.to_plutus_data()]) + } + ScriptInfo::Rewarding(stake_credential) => { + wrap_with_constr(2, stake_credential.to_plutus_data()) + } + ScriptInfo::Certifying(ix, dcert) => { + wrap_multiple_with_constr(3, vec![ix.to_plutus_data(), dcert.to_plutus_data()]) + } + ScriptInfo::Voting(voter) => wrap_multiple_with_constr(4, vec![voter.to_plutus_data()]), + ScriptInfo::Proposing(ix, procedure) => { + wrap_multiple_with_constr(5, vec![ix.to_plutus_data(), procedure.to_plutus_data()]) + } } } } @@ -576,12 +1270,15 @@ impl ToPlutusData for TxInfo { TxInfo::V1(tx_info) => wrap_multiple_with_constr( 0, vec![ - tx_info.inputs.to_plutus_data(), - tx_info.outputs.to_plutus_data(), - tx_info.fee.to_plutus_data(), - tx_info.mint.to_plutus_data(), - tx_info.dcert.to_plutus_data(), - tx_info.wdrl.to_plutus_data(), + WithOptionDatum(&WithZeroAdaAsset(&WithWrappedTransactionId( + &tx_info.inputs, + ))) + .to_plutus_data(), + WithOptionDatum(&WithZeroAdaAsset(&tx_info.outputs)).to_plutus_data(), + WithZeroAdaAsset(&tx_info.fee).to_plutus_data(), + WithZeroAdaAsset(&tx_info.mint).to_plutus_data(), + WithPartialCertificates(&tx_info.certificates).to_plutus_data(), + WithWrappedStakeCredential(&tx_info.withdrawals).to_plutus_data(), tx_info.valid_range.to_plutus_data(), tx_info.signatories.to_plutus_data(), tx_info.data.to_plutus_data(), @@ -589,6 +1286,24 @@ impl ToPlutusData for TxInfo { ], ), TxInfo::V2(tx_info) => wrap_multiple_with_constr( + 0, + vec![ + WithZeroAdaAsset(&WithWrappedTransactionId(&tx_info.inputs)).to_plutus_data(), + WithZeroAdaAsset(&WithWrappedTransactionId(&tx_info.reference_inputs)) + .to_plutus_data(), + WithZeroAdaAsset(&tx_info.outputs).to_plutus_data(), + WithZeroAdaAsset(&tx_info.fee).to_plutus_data(), + WithZeroAdaAsset(&tx_info.mint).to_plutus_data(), + WithPartialCertificates(&tx_info.certificates).to_plutus_data(), + WithWrappedStakeCredential(&tx_info.withdrawals).to_plutus_data(), + tx_info.valid_range.to_plutus_data(), + tx_info.signatories.to_plutus_data(), + WithWrappedTransactionId(&tx_info.redeemers).to_plutus_data(), + tx_info.data.to_plutus_data(), + wrap_with_constr(0, tx_info.id.to_plutus_data()), + ], + ), + TxInfo::V3(tx_info) => wrap_multiple_with_constr( 0, vec![ tx_info.inputs.to_plutus_data(), @@ -596,13 +1311,17 @@ impl ToPlutusData for TxInfo { tx_info.outputs.to_plutus_data(), tx_info.fee.to_plutus_data(), tx_info.mint.to_plutus_data(), - tx_info.dcert.to_plutus_data(), - tx_info.wdrl.to_plutus_data(), + tx_info.certificates.to_plutus_data(), + tx_info.withdrawals.to_plutus_data(), tx_info.valid_range.to_plutus_data(), tx_info.signatories.to_plutus_data(), tx_info.redeemers.to_plutus_data(), tx_info.data.to_plutus_data(), - wrap_with_constr(0, tx_info.id.to_plutus_data()), + tx_info.id.to_plutus_data(), + tx_info.votes.to_plutus_data(), + tx_info.proposal_procedures.to_plutus_data(), + tx_info.current_treasury_amount.to_plutus_data(), + tx_info.treasury_donation.to_plutus_data(), ], ), } @@ -610,19 +1329,27 @@ impl ToPlutusData for TxInfo { } impl ToPlutusData for ScriptContext { - fn to_plutus_data(&self) -> PlutusData { - wrap_multiple_with_constr( - 0, - vec![self.tx_info.to_plutus_data(), self.purpose.to_plutus_data()], - ) - } -} - -impl ToPlutusData for bool { fn to_plutus_data(&self) -> PlutusData { match self { - false => empty_constr(0), - true => empty_constr(1), + ScriptContext::V1V2 { tx_info, purpose } => wrap_multiple_with_constr( + 0, + vec![ + tx_info.to_plutus_data(), + WithWrappedTransactionId(purpose.as_ref()).to_plutus_data(), + ], + ), + ScriptContext::V3 { + tx_info, + redeemer, + purpose, + } => wrap_multiple_with_constr( + 0, + vec![ + tx_info.to_plutus_data(), + redeemer.to_plutus_data(), + purpose.to_plutus_data(), + ], + ), } } } diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-syntax-1/bad-syntax-1.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-syntax-1/bad-syntax-1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-syntax-1/bad-syntax-1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-syntax-1/bad-syntax-1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-syntax-1/bad-syntax-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-syntax-1/bad-syntax-1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-syntax-1/bad-syntax-1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-syntax-1/bad-syntax-1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-syntax-1/bad-syntax-1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-syntax-1/bad-syntax-1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-syntax-1/bad-syntax-1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-syntax-1/bad-syntax-1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-syntax-2/bad-syntax-2.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-syntax-2/bad-syntax-2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-syntax-2/bad-syntax-2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-syntax-2/bad-syntax-2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-syntax-2/bad-syntax-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-syntax-2/bad-syntax-2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-syntax-2/bad-syntax-2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-syntax-2/bad-syntax-2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-syntax-2/bad-syntax-2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-syntax-2/bad-syntax-2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-syntax-2/bad-syntax-2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-syntax-2/bad-syntax-2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-zero-1/bad-zero-1.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-zero-1/bad-zero-1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-zero-1/bad-zero-1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-zero-1/bad-zero-1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-zero-1/bad-zero-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-zero-1/bad-zero-1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-zero-1/bad-zero-1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-zero-1/bad-zero-1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-zero-1/bad-zero-1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-zero-1/bad-zero-1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-zero-1/bad-zero-1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-zero-1/bad-zero-1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-zero-2/bad-zero-2.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-zero-2/bad-zero-2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-zero-2/bad-zero-2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-zero-2/bad-zero-2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-zero-2/bad-zero-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-zero-2/bad-zero-2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-zero-2/bad-zero-2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-zero-2/bad-zero-2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-zero-2/bad-zero-2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-zero-2/bad-zero-2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-zero-2/bad-zero-2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-zero-2/bad-zero-2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-zero-3/bad-zero-3.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-zero-3/bad-zero-3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-zero-3/bad-zero-3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-zero-3/bad-zero-3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-zero-3/bad-zero-3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-zero-3/bad-zero-3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-zero-3/bad-zero-3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-zero-3/bad-zero-3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-zero-3/bad-zero-3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-zero-3/bad-zero-3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/bad-zero-3/bad-zero-3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/bad-zero-3/bad-zero-3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/off-curve/off-curve.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/off-curve/off-curve.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/off-curve/off-curve.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/off-curve/off-curve.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/off-curve/off-curve.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/off-curve/off-curve.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/off-curve/off-curve.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/off-curve/off-curve.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/off-curve/off-curve.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/off-curve/off-curve.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/off-curve/off-curve.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/off-curve/off-curve.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/out-of-group/out-of-group.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/out-of-group/out-of-group.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/out-of-group/out-of-group.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/out-of-group/out-of-group.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/out-of-group/out-of-group.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/out-of-group/out-of-group.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/out-of-group/out-of-group.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/out-of-group/out-of-group.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/out-of-group/out-of-group.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/out-of-group/out-of-group.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/out-of-group/out-of-group.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/out-of-group/out-of-group.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/too-long/too-long.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/too-long/too-long.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/too-long/too-long.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/too-long/too-long.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/too-long/too-long.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/too-long/too-long.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/too-long/too-long.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/too-long/too-long.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/too-long/too-long.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/too-long/too-long.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/too-long/too-long.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/too-long/too-long.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/too-short/too-short.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/too-short/too-short.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/too-short/too-short.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/too-short/too-short.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/too-short/too-short.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/too-short/too-short.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/too-short/too-short.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/too-short/too-short.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/too-short/too-short.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/too-short/too-short.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/too-short/too-short.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/too-short/too-short.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/zero/zero.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/zero/zero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/zero/zero.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/zero/zero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/zero/zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/zero/zero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/zero/zero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/zero/zero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/zero/zero.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/zero/zero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G1/zero/zero.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G1/zero/zero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-syntax-1/bad-syntax-1.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-syntax-1/bad-syntax-1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-syntax-1/bad-syntax-1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-syntax-1/bad-syntax-1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-syntax-1/bad-syntax-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-syntax-1/bad-syntax-1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-syntax-1/bad-syntax-1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-syntax-1/bad-syntax-1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-syntax-1/bad-syntax-1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-syntax-1/bad-syntax-1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-syntax-1/bad-syntax-1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-syntax-1/bad-syntax-1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-syntax-2/bad-syntax-2.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-syntax-2/bad-syntax-2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-syntax-2/bad-syntax-2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-syntax-2/bad-syntax-2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-syntax-2/bad-syntax-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-syntax-2/bad-syntax-2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-syntax-2/bad-syntax-2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-syntax-2/bad-syntax-2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-syntax-2/bad-syntax-2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-syntax-2/bad-syntax-2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-syntax-2/bad-syntax-2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-syntax-2/bad-syntax-2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-zero-1/bad-zero-1.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-zero-1/bad-zero-1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-zero-1/bad-zero-1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-zero-1/bad-zero-1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-zero-1/bad-zero-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-zero-1/bad-zero-1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-zero-1/bad-zero-1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-zero-1/bad-zero-1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-zero-1/bad-zero-1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-zero-1/bad-zero-1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-zero-1/bad-zero-1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-zero-1/bad-zero-1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-zero-2/bad-zero-2.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-zero-2/bad-zero-2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-zero-2/bad-zero-2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-zero-2/bad-zero-2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-zero-2/bad-zero-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-zero-2/bad-zero-2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-zero-2/bad-zero-2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-zero-2/bad-zero-2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-zero-2/bad-zero-2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-zero-2/bad-zero-2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-zero-2/bad-zero-2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-zero-2/bad-zero-2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-zero-3/bad-zero-3.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-zero-3/bad-zero-3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-zero-3/bad-zero-3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-zero-3/bad-zero-3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-zero-3/bad-zero-3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-zero-3/bad-zero-3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-zero-3/bad-zero-3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-zero-3/bad-zero-3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-zero-3/bad-zero-3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-zero-3/bad-zero-3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/bad-zero-3/bad-zero-3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/bad-zero-3/bad-zero-3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/off-curve/off-curve.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/off-curve/off-curve.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/off-curve/off-curve.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/off-curve/off-curve.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/off-curve/off-curve.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/off-curve/off-curve.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/off-curve/off-curve.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/off-curve/off-curve.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/off-curve/off-curve.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/off-curve/off-curve.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/off-curve/off-curve.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/off-curve/off-curve.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/out-of-group/out-of-group.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/out-of-group/out-of-group.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/out-of-group/out-of-group.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/out-of-group/out-of-group.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/out-of-group/out-of-group.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/out-of-group/out-of-group.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/out-of-group/out-of-group.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/out-of-group/out-of-group.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/out-of-group/out-of-group.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/out-of-group/out-of-group.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/out-of-group/out-of-group.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/out-of-group/out-of-group.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/too-long/too-long.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/too-long/too-long.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/too-long/too-long.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/too-long/too-long.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/too-long/too-long.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/too-long/too-long.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/too-long/too-long.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/too-long/too-long.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/too-long/too-long.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/too-long/too-long.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/too-long/too-long.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/too-long/too-long.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/too-short/too-short.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/too-short/too-short.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/too-short/too-short.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/too-short/too-short.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/too-short/too-short.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/too-short/too-short.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/too-short/too-short.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/too-short/too-short.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/too-short/too-short.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/too-short/too-short.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/too-short/too-short.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/too-short/too-short.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/zero/zero.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/zero/zero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/zero/zero.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/zero/zero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/zero/zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/zero/zero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/zero/zero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/zero/zero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/zero/zero.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/zero/zero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bls12-381/G2/zero/zero.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bls12-381/G2/zero/zero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bool/False/False.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bool/False/False.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bool/False/False.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bool/False/False.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bool/False/False.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bool/False/False.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bool/False/False.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bool/False/False.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bool/False/False.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bool/False/False.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bool/False/False.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bool/False/False.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bool/True/True.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bool/True/True.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bool/True/True.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bool/True/True.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bool/True/True.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bool/True/True.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bool/True/True.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bool/True/True.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bool/True/True.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bool/True/True.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bool/True/True.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bool/True/True.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring1/bytestring1.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring1/bytestring1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring1/bytestring1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring1/bytestring1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring1/bytestring1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring1/bytestring1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring1/bytestring1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring1/bytestring1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring1/bytestring1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring1/bytestring1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring1/bytestring1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring1/bytestring1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring2/bytestring2.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring2/bytestring2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring2/bytestring2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring2/bytestring2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring2/bytestring2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring2/bytestring2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring2/bytestring2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring2/bytestring2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring2/bytestring2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring2/bytestring2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring2/bytestring2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring2/bytestring2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring3/bytestring3.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring3/bytestring3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring3/bytestring3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring3/bytestring3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring3/bytestring3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring3/bytestring3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring3/bytestring3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring3/bytestring3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring3/bytestring3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring3/bytestring3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring3/bytestring3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring3/bytestring3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring4/bytestring4.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring4/bytestring4.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring4/bytestring4.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring4/bytestring4.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring4/bytestring4.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring4/bytestring4.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring4/bytestring4.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring4/bytestring4.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring4/bytestring4.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring4/bytestring4.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/bytestring/bytestring4/bytestring4.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/bytestring/bytestring4/bytestring4.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataByteString/dataByteString.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataByteString/dataByteString.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataByteString/dataByteString.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataByteString/dataByteString.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataByteString/dataByteString.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataByteString/dataByteString.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataByteString/dataByteString.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataByteString/dataByteString.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataByteString/dataByteString.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataByteString/dataByteString.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataByteString/dataByteString.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataByteString/dataByteString.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataConstr/dataConstr.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataConstr/dataConstr.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataConstr/dataConstr.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataConstr/dataConstr.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataConstr/dataConstr.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataConstr/dataConstr.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataConstr/dataConstr.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataConstr/dataConstr.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataConstr/dataConstr.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataConstr/dataConstr.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataConstr/dataConstr.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataConstr/dataConstr.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataInteger/dataInteger.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataInteger/dataInteger.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataInteger/dataInteger.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataInteger/dataInteger.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataInteger/dataInteger.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataInteger/dataInteger.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataInteger/dataInteger.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataInteger/dataInteger.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataInteger/dataInteger.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataInteger/dataInteger.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataInteger/dataInteger.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataInteger/dataInteger.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataList/dataList.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataList/dataList.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataList/dataList.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataList/dataList.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataList/dataList.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataList/dataList.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataList/dataList.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataList/dataList.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataList/dataList.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataList/dataList.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataList/dataList.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataList/dataList.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMap/dataMap.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMap/dataMap.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMap/dataMap.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMap/dataMap.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMap/dataMap.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMap/dataMap.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMap/dataMap.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMap/dataMap.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMap/dataMap.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMap/dataMap.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMap/dataMap.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMap/dataMap.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisByteString/dataMisByteString.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisByteString/dataMisByteString.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisByteString/dataMisByteString.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisByteString/dataMisByteString.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisByteString/dataMisByteString.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisByteString/dataMisByteString.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisByteString/dataMisByteString.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisByteString/dataMisByteString.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisByteString/dataMisByteString.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisByteString/dataMisByteString.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisByteString/dataMisByteString.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisByteString/dataMisByteString.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisConstr/dataMisConstr.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisConstr/dataMisConstr.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisConstr/dataMisConstr.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisConstr/dataMisConstr.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisConstr/dataMisConstr.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisConstr/dataMisConstr.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisConstr/dataMisConstr.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisConstr/dataMisConstr.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisConstr/dataMisConstr.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisConstr/dataMisConstr.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisConstr/dataMisConstr.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisConstr/dataMisConstr.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisInteger/dataMisInteger.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisInteger/dataMisInteger.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisInteger/dataMisInteger.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisInteger/dataMisInteger.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisInteger/dataMisInteger.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisInteger/dataMisInteger.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisInteger/dataMisInteger.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisInteger/dataMisInteger.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisInteger/dataMisInteger.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisInteger/dataMisInteger.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisInteger/dataMisInteger.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisInteger/dataMisInteger.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisList/dataMisList.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisList/dataMisList.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisList/dataMisList.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisList/dataMisList.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisList/dataMisList.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisList/dataMisList.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisList/dataMisList.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisList/dataMisList.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisList/dataMisList.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisList/dataMisList.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisList/dataMisList.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisList/dataMisList.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisMap/dataMisMap.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisMap/dataMisMap.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisMap/dataMisMap.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisMap/dataMisMap.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisMap/dataMisMap.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisMap/dataMisMap.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisMap/dataMisMap.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisMap/dataMisMap.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisMap/dataMisMap.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisMap/dataMisMap.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/data/dataMisMap/dataMisMap.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/data/dataMisMap/dataMisMap.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer1/integer1.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer1/integer1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer1/integer1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer1/integer1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer1/integer1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer1/integer1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer1/integer1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer1/integer1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer1/integer1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer1/integer1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer1/integer1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer1/integer1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer10/integer10.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer10/integer10.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer10/integer10.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer10/integer10.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer10/integer10.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer10/integer10.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer10/integer10.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer10/integer10.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer10/integer10.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer10/integer10.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer10/integer10.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer10/integer10.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer2/integer2.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer2/integer2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer2/integer2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer2/integer2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer2/integer2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer2/integer2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer2/integer2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer2/integer2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer2/integer2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer2/integer2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer2/integer2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer2/integer2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer3/integer3.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer3/integer3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer3/integer3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer3/integer3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer3/integer3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer3/integer3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer3/integer3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer3/integer3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer3/integer3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer3/integer3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer3/integer3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer3/integer3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer4/integer4.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer4/integer4.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer4/integer4.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer4/integer4.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer4/integer4.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer4/integer4.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer4/integer4.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer4/integer4.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer4/integer4.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer4/integer4.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer4/integer4.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer4/integer4.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer5/integer5.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer5/integer5.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer5/integer5.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer5/integer5.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer5/integer5.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer5/integer5.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer5/integer5.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer5/integer5.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer5/integer5.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer5/integer5.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer5/integer5.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer5/integer5.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer6/integer6.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer6/integer6.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer6/integer6.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer6/integer6.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer6/integer6.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer6/integer6.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer6/integer6.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer6/integer6.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer6/integer6.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer6/integer6.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer6/integer6.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer6/integer6.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer7/integer7.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer7/integer7.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer7/integer7.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer7/integer7.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer7/integer7.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer7/integer7.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer7/integer7.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer7/integer7.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer7/integer7.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer7/integer7.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer7/integer7.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer7/integer7.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer9/integer9.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer9/integer9.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer9/integer9.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer9/integer9.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer9/integer9.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer9/integer9.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer9/integer9.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer9/integer9.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer9/integer9.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer9/integer9.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/integer/integer9/integer9.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/integer/integer9/integer9.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/list/emptyList/emptyList.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/list/emptyList/emptyList.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/list/emptyList/emptyList.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/list/emptyList/emptyList.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/list/emptyList/emptyList.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/list/emptyList/emptyList.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/list/emptyList/emptyList.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/list/emptyList/emptyList.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/list/emptyList/emptyList.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/list/emptyList/emptyList.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/list/emptyList/emptyList.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/list/emptyList/emptyList.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/list/illTypedList1/illTypedList1.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/list/illTypedList1/illTypedList1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/list/illTypedList1/illTypedList1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/list/illTypedList1/illTypedList1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/list/illTypedList1/illTypedList1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/list/illTypedList1/illTypedList1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/list/illTypedList1/illTypedList1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/list/illTypedList1/illTypedList1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/list/illTypedList1/illTypedList1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/list/illTypedList1/illTypedList1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/list/illTypedList1/illTypedList1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/list/illTypedList1/illTypedList1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/list/illTypedList2/illTypedList2.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/list/illTypedList2/illTypedList2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/list/illTypedList2/illTypedList2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/list/illTypedList2/illTypedList2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/list/illTypedList2/illTypedList2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/list/illTypedList2/illTypedList2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/list/illTypedList2/illTypedList2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/list/illTypedList2/illTypedList2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/list/illTypedList2/illTypedList2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/list/illTypedList2/illTypedList2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/list/illTypedList2/illTypedList2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/list/illTypedList2/illTypedList2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/list/simpleList/simpleList.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/list/simpleList/simpleList.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/list/simpleList/simpleList.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/list/simpleList/simpleList.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/list/simpleList/simpleList.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/list/simpleList/simpleList.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/list/simpleList/simpleList.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/list/simpleList/simpleList.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/list/simpleList/simpleList.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/list/simpleList/simpleList.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/list/simpleList/simpleList.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/list/simpleList/simpleList.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/list/unitList/unitList.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/list/unitList/unitList.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/list/unitList/unitList.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/list/unitList/unitList.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/list/unitList/unitList.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/list/unitList/unitList.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/list/unitList/unitList.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/list/unitList/unitList.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/list/unitList/unitList.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/list/unitList/unitList.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/list/unitList/unitList.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/list/unitList/unitList.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/illTypedNestedPair/illTypedNestedPair.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/pair/illTypedNestedPair/illTypedNestedPair.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/illTypedNestedPair/illTypedNestedPair.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/pair/illTypedNestedPair/illTypedNestedPair.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/illTypedNestedPair/illTypedNestedPair.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/pair/illTypedNestedPair/illTypedNestedPair.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/illTypedNestedPair/illTypedNestedPair.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/pair/illTypedNestedPair/illTypedNestedPair.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/illTypedNestedPair/illTypedNestedPair.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/pair/illTypedNestedPair/illTypedNestedPair.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/illTypedNestedPair/illTypedNestedPair.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/pair/illTypedNestedPair/illTypedNestedPair.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/illTypedPair1/illTypedPair1.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/pair/illTypedPair1/illTypedPair1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/illTypedPair1/illTypedPair1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/pair/illTypedPair1/illTypedPair1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/illTypedPair1/illTypedPair1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/pair/illTypedPair1/illTypedPair1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/illTypedPair1/illTypedPair1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/pair/illTypedPair1/illTypedPair1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/illTypedPair1/illTypedPair1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/pair/illTypedPair1/illTypedPair1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/illTypedPair1/illTypedPair1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/pair/illTypedPair1/illTypedPair1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/illTypedPair2/illTypedPair2.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/pair/illTypedPair2/illTypedPair2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/illTypedPair2/illTypedPair2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/pair/illTypedPair2/illTypedPair2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/illTypedPair2/illTypedPair2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/pair/illTypedPair2/illTypedPair2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/illTypedPair2/illTypedPair2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/pair/illTypedPair2/illTypedPair2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/illTypedPair2/illTypedPair2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/pair/illTypedPair2/illTypedPair2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/illTypedPair2/illTypedPair2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/pair/illTypedPair2/illTypedPair2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/nestedPair/nestedPair.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/pair/nestedPair/nestedPair.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/nestedPair/nestedPair.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/pair/nestedPair/nestedPair.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/nestedPair/nestedPair.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/pair/nestedPair/nestedPair.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/nestedPair/nestedPair.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/pair/nestedPair/nestedPair.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/nestedPair/nestedPair.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/pair/nestedPair/nestedPair.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/nestedPair/nestedPair.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/pair/nestedPair/nestedPair.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/simplePair/simplePair.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/pair/simplePair/simplePair.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/simplePair/simplePair.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/pair/simplePair/simplePair.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/simplePair/simplePair.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/pair/simplePair/simplePair.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/simplePair/simplePair.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/pair/simplePair/simplePair.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/simplePair/simplePair.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/pair/simplePair/simplePair.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/pair/simplePair/simplePair.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/pair/simplePair/simplePair.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string1/string1.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/string/string1/string1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string1/string1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/string/string1/string1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string1/string1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/string/string1/string1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string1/string1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/string/string1/string1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string1/string1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/string/string1/string1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string1/string1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/string/string1/string1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string2/string2.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/string/string2/string2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string2/string2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/string/string2/string2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string2/string2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/string/string2/string2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string2/string2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/string/string2/string2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string2/string2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/string/string2/string2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string2/string2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/string/string2/string2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string3/string3.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/string/string3/string3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string3/string3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/string/string3/string3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string3/string3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/string/string3/string3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string3/string3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/string/string3/string3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string3/string3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/string/string3/string3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string3/string3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/string/string3/string3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string6/string6.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/string/string6/string6.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string6/string6.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/string/string6/string6.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string6/string6.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/string/string6/string6.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string6/string6.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/string/string6/string6.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string6/string6.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/string/string6/string6.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/string/string6/string6.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/string/string6/string6.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/unit/conUnit.uplc b/crates/uplc/test_data/conformance/v2/builtin/constant/unit/conUnit.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/unit/conUnit.uplc rename to crates/uplc/test_data/conformance/v2/builtin/constant/unit/conUnit.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/unit/conUnit.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/unit/conUnit.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/unit/conUnit.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/unit/conUnit.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/unit/unit.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/unit/unit.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/unit/unit.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/unit/unit.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/constant/unit/unit.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/constant/unit/unit.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/constant/unit/unit.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/constant/unit/unit.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/README.md b/crates/uplc/test_data/conformance/v2/builtin/interleaving/README.md similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/README.md rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/README.md diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/ite/ite.uplc b/crates/uplc/test_data/conformance/v2/builtin/interleaving/ite/ite.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/ite/ite.uplc rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/ite/ite.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/ite/ite.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/ite/ite.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/ite/ite.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/ite/ite.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/ite/ite.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/ite/ite.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/ite/ite.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/ite/ite.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForceAppForce/iteForceAppForce.uplc b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForceAppForce/iteForceAppForce.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForceAppForce/iteForceAppForce.uplc rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForceAppForce/iteForceAppForce.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForceAppForce/iteForceAppForce.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForceAppForce/iteForceAppForce.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForceAppForce/iteForceAppForce.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForceAppForce/iteForceAppForce.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForceAppForce/iteForceAppForce.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForceAppForce/iteForceAppForce.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForceAppForce/iteForceAppForce.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForceAppForce/iteForceAppForce.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForced/iteForced.uplc b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForced/iteForced.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForced/iteForced.uplc rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForced/iteForced.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForced/iteForced.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForced/iteForced.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForced/iteForced.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForced/iteForced.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForced/iteForced.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForced/iteForced.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForced/iteForced.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForced/iteForced.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForcedForced/iteForcedForced.uplc b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForcedForced/iteForcedForced.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForcedForced/iteForcedForced.uplc rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForcedForced/iteForcedForced.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForcedForced/iteForcedForced.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForcedForced/iteForcedForced.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForcedForced/iteForcedForced.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForcedForced/iteForcedForced.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForcedForced/iteForcedForced.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForcedForced/iteForcedForced.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForcedForced/iteForcedForced.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForcedForced/iteForcedForced.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteStringInteger/iteStringInteger.uplc b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteStringInteger/iteStringInteger.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteStringInteger/iteStringInteger.uplc rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteStringInteger/iteStringInteger.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteStringInteger/iteStringInteger.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteStringInteger/iteStringInteger.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteStringInteger/iteStringInteger.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteStringInteger/iteStringInteger.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteStringInteger/iteStringInteger.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteStringInteger/iteStringInteger.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteStringInteger/iteStringInteger.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteStringInteger/iteStringInteger.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteStringString/iteStringString.uplc b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteStringString/iteStringString.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteStringString/iteStringString.uplc rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteStringString/iteStringString.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteStringString/iteStringString.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteStringString/iteStringString.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteStringString/iteStringString.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteStringString/iteStringString.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteStringString/iteStringString.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteStringString/iteStringString.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteStringString/iteStringString.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteStringString/iteStringString.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteUnforcedFullyApplied/iteUnforcedFullyApplied.uplc b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteUnforcedFullyApplied/iteUnforcedFullyApplied.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteUnforcedFullyApplied/iteUnforcedFullyApplied.uplc rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteUnforcedFullyApplied/iteUnforcedFullyApplied.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteUnforcedFullyApplied/iteUnforcedFullyApplied.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteUnforcedFullyApplied/iteUnforcedFullyApplied.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteUnforcedFullyApplied/iteUnforcedFullyApplied.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteUnforcedFullyApplied/iteUnforcedFullyApplied.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteUnforcedFullyApplied/iteUnforcedFullyApplied.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteUnforcedFullyApplied/iteUnforcedFullyApplied.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteUnforcedFullyApplied/iteUnforcedFullyApplied.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteUnforcedFullyApplied/iteUnforcedFullyApplied.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteUnforcedWithCond/iteUnforcedWithCond.uplc b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteUnforcedWithCond/iteUnforcedWithCond.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteUnforcedWithCond/iteUnforcedWithCond.uplc rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteUnforcedWithCond/iteUnforcedWithCond.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteUnforcedWithCond/iteUnforcedWithCond.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteUnforcedWithCond/iteUnforcedWithCond.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteUnforcedWithCond/iteUnforcedWithCond.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteUnforcedWithCond/iteUnforcedWithCond.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteUnforcedWithCond/iteUnforcedWithCond.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteUnforcedWithCond/iteUnforcedWithCond.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteUnforcedWithCond/iteUnforcedWithCond.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteUnforcedWithCond/iteUnforcedWithCond.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteWrongCondTypeFullyAppied/iteWrongCondTypeFullyAppied.uplc b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteWrongCondTypeFullyAppied/iteWrongCondTypeFullyAppied.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteWrongCondTypeFullyAppied/iteWrongCondTypeFullyAppied.uplc rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteWrongCondTypeFullyAppied/iteWrongCondTypeFullyAppied.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteWrongCondTypeFullyAppied/iteWrongCondTypeFullyAppied.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteWrongCondTypeFullyAppied/iteWrongCondTypeFullyAppied.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteWrongCondTypeFullyAppied/iteWrongCondTypeFullyAppied.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteWrongCondTypeFullyAppied/iteWrongCondTypeFullyAppied.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteWrongCondTypeFullyAppied/iteWrongCondTypeFullyAppied.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteWrongCondTypeFullyAppied/iteWrongCondTypeFullyAppied.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteWrongCondTypeFullyAppied/iteWrongCondTypeFullyAppied.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteWrongCondTypeFullyAppied/iteWrongCondTypeFullyAppied.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/multiplyIntegerForceError1/multiplyIntegerForceError1.uplc b/crates/uplc/test_data/conformance/v2/builtin/interleaving/multiplyIntegerForceError1/multiplyIntegerForceError1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/multiplyIntegerForceError1/multiplyIntegerForceError1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/multiplyIntegerForceError1/multiplyIntegerForceError1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/multiplyIntegerForceError1/multiplyIntegerForceError1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/multiplyIntegerForceError1/multiplyIntegerForceError1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/multiplyIntegerForceError1/multiplyIntegerForceError1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/multiplyIntegerForceError1/multiplyIntegerForceError1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/multiplyIntegerForceError1/multiplyIntegerForceError1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/multiplyIntegerForceError1/multiplyIntegerForceError1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/multiplyIntegerForceError1/multiplyIntegerForceError1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/multiplyIntegerForceError1/multiplyIntegerForceError1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/multiplyIntegerForceError2/multiplyIntegerForceError2.uplc b/crates/uplc/test_data/conformance/v2/builtin/interleaving/multiplyIntegerForceError2/multiplyIntegerForceError2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/multiplyIntegerForceError2/multiplyIntegerForceError2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/multiplyIntegerForceError2/multiplyIntegerForceError2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/multiplyIntegerForceError2/multiplyIntegerForceError2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/multiplyIntegerForceError2/multiplyIntegerForceError2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/multiplyIntegerForceError2/multiplyIntegerForceError2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/multiplyIntegerForceError2/multiplyIntegerForceError2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/multiplyIntegerForceError2/multiplyIntegerForceError2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/multiplyIntegerForceError2/multiplyIntegerForceError2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/multiplyIntegerForceError2/multiplyIntegerForceError2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/multiplyIntegerForceError2/multiplyIntegerForceError2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/multiplyIntegerForceError3/multiplyIntegerForceError3.uplc b/crates/uplc/test_data/conformance/v2/builtin/interleaving/multiplyIntegerForceError3/multiplyIntegerForceError3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/multiplyIntegerForceError3/multiplyIntegerForceError3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/multiplyIntegerForceError3/multiplyIntegerForceError3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/multiplyIntegerForceError3/multiplyIntegerForceError3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/multiplyIntegerForceError3/multiplyIntegerForceError3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/multiplyIntegerForceError3/multiplyIntegerForceError3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/multiplyIntegerForceError3/multiplyIntegerForceError3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/interleaving/multiplyIntegerForceError3/multiplyIntegerForceError3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/interleaving/multiplyIntegerForceError3/multiplyIntegerForceError3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/interleaving/multiplyIntegerForceError3/multiplyIntegerForceError3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/interleaving/multiplyIntegerForceError3/multiplyIntegerForceError3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/README.md b/crates/uplc/test_data/conformance/v2/builtin/semantics/README.md similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/README.md rename to crates/uplc/test_data/conformance/v2/builtin/semantics/README.md diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger1/addInteger1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger1/addInteger1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger1/addInteger1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger1/addInteger1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger1/addInteger1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger1/addInteger1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger1/addInteger1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger1/addInteger1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger1/addInteger1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger1/addInteger1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger1/addInteger1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger1/addInteger1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger2/addInteger2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger2/addInteger2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger2/addInteger2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger2/addInteger2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger2/addInteger2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger2/addInteger2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger2/addInteger2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger2/addInteger2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger2/addInteger2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger2/addInteger2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger2/addInteger2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger2/addInteger2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger3/addInteger3.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger3/addInteger3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger3/addInteger3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger3/addInteger3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger3/addInteger3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger3/addInteger3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger3/addInteger3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger3/addInteger3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger3/addInteger3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger3/addInteger3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger3/addInteger3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger3/addInteger3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger4/addInteger4.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger4/addInteger4.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger4/addInteger4.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger4/addInteger4.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger4/addInteger4.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger4/addInteger4.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger4/addInteger4.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger4/addInteger4.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger4/addInteger4.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger4/addInteger4.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/addInteger/addInteger4/addInteger4.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/addInteger/addInteger4/addInteger4.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendString/appendString.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/appendString/appendString.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendString/appendString.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/appendString/appendString.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendString/appendString.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/appendString/appendString.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendString/appendString.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/appendString/appendString.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendString/appendString.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/appendString/appendString.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/appendString/appendString.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/appendString/appendString.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bData/bData.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bData/bData.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bData/bData.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bData/bData.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bData/bData.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bData/bData.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bData/bData.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bData/bData.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bData/bData.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bData/bData.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bData/bData.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bData/bData.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/off-curve/off-curve.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/off-curve/off-curve.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/off-curve/off-curve.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/off-curve/off-curve.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/off-curve/off-curve.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/off-curve/off-curve.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/off-curve/off-curve.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/off-curve/off-curve.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/off-curve/off-curve.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/off-curve/off-curve.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/off-curve/off-curve.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/off-curve/off-curve.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/out-of-group/out-of-group.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/out-of-group/out-of-group.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/out-of-group/out-of-group.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/out-of-group/out-of-group.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/out-of-group/out-of-group.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/out-of-group/out-of-group.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/out-of-group/out-of-group.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/out-of-group/out-of-group.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/out-of-group/out-of-group.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/out-of-group/out-of-group.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/out-of-group/out-of-group.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/out-of-group/out-of-group.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/off-curve/off-curve.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/off-curve/off-curve.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/off-curve/off-curve.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/off-curve/off-curve.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/off-curve/off-curve.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/off-curve/off-curve.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/off-curve/off-curve.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/off-curve/off-curve.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/off-curve/off-curve.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/off-curve/off-curve.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/off-curve/off-curve.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/off-curve/off-curve.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/out-of-group/out-of-group.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/out-of-group/out-of-group.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/out-of-group/out-of-group.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/out-of-group/out-of-group.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/out-of-group/out-of-group.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/out-of-group/out-of-group.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/out-of-group/out-of-group.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/out-of-group/out-of-group.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/out-of-group/out-of-group.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/out-of-group/out-of-group.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/out-of-group/out-of-group.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/out-of-group/out-of-group.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/README.md b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/README.md similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/README.md rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/README.md diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add/add.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add/add.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add/add.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add/add.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add/add.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add/add.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add/add.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add/add.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add/add.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add/add.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_add/add/add.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_add/add/add.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/bad-zero-1/bad-zero-1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/bad-zero-1/bad-zero-1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/bad-zero-1/bad-zero-1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/bad-zero-1/bad-zero-1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/bad-zero-1/bad-zero-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/bad-zero-1/bad-zero-1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/bad-zero-1/bad-zero-1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/bad-zero-1/bad-zero-1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/bad-zero-1/bad-zero-1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/bad-zero-1/bad-zero-1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/bad-zero-1/bad-zero-1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/bad-zero-1/bad-zero-1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/bad-zero-2/bad-zero-2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/bad-zero-2/bad-zero-2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/bad-zero-2/bad-zero-2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/bad-zero-2/bad-zero-2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/bad-zero-2/bad-zero-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/bad-zero-2/bad-zero-2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/bad-zero-2/bad-zero-2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/bad-zero-2/bad-zero-2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/bad-zero-2/bad-zero-2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/bad-zero-2/bad-zero-2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/bad-zero-2/bad-zero-2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/bad-zero-2/bad-zero-2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/bad-zero-3/bad-zero-3.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/bad-zero-3/bad-zero-3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/bad-zero-3/bad-zero-3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/bad-zero-3/bad-zero-3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/bad-zero-3/bad-zero-3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/bad-zero-3/bad-zero-3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/bad-zero-3/bad-zero-3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/bad-zero-3/bad-zero-3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/bad-zero-3/bad-zero-3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/bad-zero-3/bad-zero-3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/bad-zero-3/bad-zero-3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/bad-zero-3/bad-zero-3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/off-curve/off-curve.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/off-curve/off-curve.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/off-curve/off-curve.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/off-curve/off-curve.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/off-curve/off-curve.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/off-curve/off-curve.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/off-curve/off-curve.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/off-curve/off-curve.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/off-curve/off-curve.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/off-curve/off-curve.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/off-curve/off-curve.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/off-curve/off-curve.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/out-of-group/out-of-group.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/out-of-group/out-of-group.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/out-of-group/out-of-group.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/out-of-group/out-of-group.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/out-of-group/out-of-group.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/out-of-group/out-of-group.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/out-of-group/out-of-group.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/out-of-group/out-of-group.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/out-of-group/out-of-group.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/out-of-group/out-of-group.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/out-of-group/out-of-group.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/out-of-group/out-of-group.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/too-long/too-long.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/too-long/too-long.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/too-long/too-long.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/too-long/too-long.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/too-long/too-long.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/too-long/too-long.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/too-long/too-long.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/too-long/too-long.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/too-long/too-long.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/too-long/too-long.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/too-long/too-long.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/too-long/too-long.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/too-short/too-short.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/too-short/too-short.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/too-short/too-short.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/too-short/too-short.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/too-short/too-short.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/too-short/too-short.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/too-short/too-short.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/too-short/too-short.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/too-short/too-short.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/too-short/too-short.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/too-short/too-short.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/too-short/too-short.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add/add.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add/add.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add/add.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add/add.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add/add.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add/add.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add/add.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add/add.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add/add.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add/add.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_add/add/add.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_add/add/add.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/bad-zero-1/bad-zero-1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/bad-zero-1/bad-zero-1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/bad-zero-1/bad-zero-1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/bad-zero-1/bad-zero-1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/bad-zero-1/bad-zero-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/bad-zero-1/bad-zero-1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/bad-zero-1/bad-zero-1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/bad-zero-1/bad-zero-1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/bad-zero-1/bad-zero-1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/bad-zero-1/bad-zero-1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/bad-zero-1/bad-zero-1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/bad-zero-1/bad-zero-1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/bad-zero-2/bad-zero-2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/bad-zero-2/bad-zero-2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/bad-zero-2/bad-zero-2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/bad-zero-2/bad-zero-2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/bad-zero-2/bad-zero-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/bad-zero-2/bad-zero-2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/bad-zero-2/bad-zero-2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/bad-zero-2/bad-zero-2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/bad-zero-2/bad-zero-2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/bad-zero-2/bad-zero-2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/bad-zero-2/bad-zero-2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/bad-zero-2/bad-zero-2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/bad-zero-3/bad-zero-3.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/bad-zero-3/bad-zero-3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/bad-zero-3/bad-zero-3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/bad-zero-3/bad-zero-3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/bad-zero-3/bad-zero-3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/bad-zero-3/bad-zero-3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/bad-zero-3/bad-zero-3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/bad-zero-3/bad-zero-3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/bad-zero-3/bad-zero-3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/bad-zero-3/bad-zero-3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/bad-zero-3/bad-zero-3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/bad-zero-3/bad-zero-3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/off-curve/off-curve.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/off-curve/off-curve.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/off-curve/off-curve.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/off-curve/off-curve.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/off-curve/off-curve.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/off-curve/off-curve.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/off-curve/off-curve.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/off-curve/off-curve.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/off-curve/off-curve.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/off-curve/off-curve.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/off-curve/off-curve.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/off-curve/off-curve.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/out-of-group/out-of-group.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/out-of-group/out-of-group.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/out-of-group/out-of-group.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/out-of-group/out-of-group.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/out-of-group/out-of-group.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/out-of-group/out-of-group.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/out-of-group/out-of-group.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/out-of-group/out-of-group.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/out-of-group/out-of-group.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/out-of-group/out-of-group.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/out-of-group/out-of-group.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/out-of-group/out-of-group.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/too-long/too-long.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/too-long/too-long.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/too-long/too-long.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/too-long/too-long.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/too-long/too-long.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/too-long/too-long.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/too-long/too-long.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/too-long/too-long.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/too-long/too-long.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/too-long/too-long.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/too-long/too-long.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/too-long/too-long.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/too-short/too-short.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/too-short/too-short.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/too-short/too-short.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/too-short/too-short.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/too-short/too-short.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/too-short/too-short.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/too-short/too-short.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/too-short/too-short.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/too-short/too-short.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/too-short/too-short.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/too-short/too-short.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/too-short/too-short.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataList/chooseDataList.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataList/chooseDataList.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataList/chooseDataList.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataList/chooseDataList.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataList/chooseDataList.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataList/chooseDataList.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataList/chooseDataList.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataList/chooseDataList.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataList/chooseDataList.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataList/chooseDataList.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataList/chooseDataList.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataList/chooseDataList.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataMap/chooseDataMap.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataMap/chooseDataMap.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataMap/chooseDataMap.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataMap/chooseDataMap.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataMap/chooseDataMap.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataMap/chooseDataMap.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataMap/chooseDataMap.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataMap/chooseDataMap.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataMap/chooseDataMap.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataMap/chooseDataMap.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseDataMap/chooseDataMap.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseDataMap/chooseDataMap.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList1/chooseList1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList1/chooseList1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList1/chooseList1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList1/chooseList1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList1/chooseList1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList1/chooseList1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList1/chooseList1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList1/chooseList1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList1/chooseList1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList1/chooseList1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList1/chooseList1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList1/chooseList1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList2/chooseList2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList2/chooseList2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList2/chooseList2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList2/chooseList2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList2/chooseList2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList2/chooseList2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList2/chooseList2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList2/chooseList2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList2/chooseList2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList2/chooseList2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList2/chooseList2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList2/chooseList2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList3/chooseList3.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList3/chooseList3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList3/chooseList3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList3/chooseList3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList3/chooseList3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList3/chooseList3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList3/chooseList3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList3/chooseList3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList3/chooseList3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList3/chooseList3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList3/chooseList3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList3/chooseList3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList4/chooseList4.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList4/chooseList4.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList4/chooseList4.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList4/chooseList4.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList4/chooseList4.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList4/chooseList4.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList4/chooseList4.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList4/chooseList4.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList4/chooseList4.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList4/chooseList4.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseList/chooseList4/chooseList4.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseList/chooseList4/chooseList4.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseUnit/chooseUnit.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseUnit/chooseUnit.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseUnit/chooseUnit.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseUnit/chooseUnit.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseUnit/chooseUnit.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseUnit/chooseUnit.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseUnit/chooseUnit.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseUnit/chooseUnit.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseUnit/chooseUnit.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseUnit/chooseUnit.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseUnit/chooseUnit.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseUnit/chooseUnit.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseUnit2/chooseUnit2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseUnit2/chooseUnit2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseUnit2/chooseUnit2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseUnit2/chooseUnit2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseUnit2/chooseUnit2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseUnit2/chooseUnit2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseUnit2/chooseUnit2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseUnit2/chooseUnit2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseUnit2/chooseUnit2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/chooseUnit2/chooseUnit2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/chooseUnit2/chooseUnit2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/chooseUnit2/chooseUnit2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/consByteString/consByteString3/consByteString3.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/consByteString/consByteString3/consByteString3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/consByteString/consByteString3/consByteString3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/consByteString/consByteString3/consByteString3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/consByteString/consByteString3/consByteString3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/consByteString/consByteString3/consByteString3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/consByteString/consByteString3/consByteString3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/consByteString/consByteString3/consByteString3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/consByteString/consByteString3/consByteString3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/consByteString/consByteString3/consByteString3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/consByteString/consByteString3/consByteString3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/consByteString/consByteString3/consByteString3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/constrData/constrData.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/constrData/constrData.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/constrData/constrData.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/constrData/constrData.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/constrData/constrData.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/constrData/constrData.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/constrData/constrData.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/constrData/constrData.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/constrData/constrData.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/constrData/constrData.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/constrData/constrData.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/constrData/constrData.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/decodeUtf8/decodeUtf8-invalid/decodeUtf8-invalid.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/decodeUtf8/decodeUtf8-invalid/decodeUtf8-invalid.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/decodeUtf8/decodeUtf8-invalid/decodeUtf8-invalid.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/decodeUtf8/decodeUtf8-invalid/decodeUtf8-invalid.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/decodeUtf8/decodeUtf8-invalid/decodeUtf8-invalid.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/decodeUtf8/decodeUtf8-invalid/decodeUtf8-invalid.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/decodeUtf8/decodeUtf8-invalid/decodeUtf8-invalid.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/decodeUtf8/decodeUtf8-invalid/decodeUtf8-invalid.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/decodeUtf8/decodeUtf8-invalid/decodeUtf8-invalid.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/decodeUtf8/decodeUtf8-invalid/decodeUtf8-invalid.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/decodeUtf8/decodeUtf8-invalid/decodeUtf8-invalid.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/decodeUtf8/decodeUtf8-invalid/decodeUtf8-invalid.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-zero/divideInteger-zero.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-zero/divideInteger-zero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-zero/divideInteger-zero.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-zero/divideInteger-zero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-zero/divideInteger-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-zero/divideInteger-zero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-zero/divideInteger-zero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-zero/divideInteger-zero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-zero/divideInteger-zero.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-zero/divideInteger-zero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger-zero/divideInteger-zero.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger-zero/divideInteger-zero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/encodeUtf8/encodeUtf8.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/encodeUtf8/encodeUtf8.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/encodeUtf8/encodeUtf8.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/encodeUtf8/encodeUtf8.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/encodeUtf8/encodeUtf8.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/encodeUtf8/encodeUtf8.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/encodeUtf8/encodeUtf8.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/encodeUtf8/encodeUtf8.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/encodeUtf8/encodeUtf8.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/encodeUtf8/encodeUtf8.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/encodeUtf8/encodeUtf8.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/encodeUtf8/encodeUtf8.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsData/equalsData.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsData/equalsData.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsData/equalsData.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsData/equalsData.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsData/equalsData.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsData/equalsData.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsData/equalsData.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsData/equalsData.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsData/equalsData.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsData/equalsData.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsData/equalsData.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsData/equalsData.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsString/equalsString1/equalsString1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsString/equalsString1/equalsString1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsString/equalsString1/equalsString1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsString/equalsString1/equalsString1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsString/equalsString1/equalsString1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsString/equalsString1/equalsString1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsString/equalsString1/equalsString1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsString/equalsString1/equalsString1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsString/equalsString1/equalsString1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsString/equalsString1/equalsString1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsString/equalsString1/equalsString1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsString/equalsString1/equalsString1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsString/equalsString2/equalsString2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsString/equalsString2/equalsString2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsString/equalsString2/equalsString2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsString/equalsString2/equalsString2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsString/equalsString2/equalsString2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsString/equalsString2/equalsString2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsString/equalsString2/equalsString2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsString/equalsString2/equalsString2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsString/equalsString2/equalsString2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/equalsString/equalsString2/equalsString2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/equalsString/equalsString2/equalsString2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/equalsString/equalsString2/equalsString2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headList1/headList1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headList1/headList1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headList1/headList1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headList1/headList1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headList1/headList1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headList1/headList1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headList1/headList1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headList1/headList1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headList1/headList1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headList1/headList1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headList1/headList1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headList1/headList1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headList2/headList2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headList2/headList2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headList2/headList2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headList2/headList2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headList2/headList2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headList2/headList2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headList2/headList2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headList2/headList2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headList2/headList2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headList2/headList2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headList2/headList2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headList2/headList2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headList3/headList3.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headList3/headList3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headList3/headList3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headList3/headList3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headList3/headList3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headList3/headList3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headList3/headList3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headList3/headList3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headList3/headList3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headList3/headList3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headList3/headList3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headList3/headList3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headPartial/headPartial.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headPartial/headPartial.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headPartial/headPartial.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headPartial/headPartial.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headPartial/headPartial.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headPartial/headPartial.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headPartial/headPartial.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headPartial/headPartial.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headPartial/headPartial.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headPartial/headPartial.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/headList/headPartial/headPartial.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/headList/headPartial/headPartial.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/iData/iData.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/iData/iData.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/iData/iData.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/iData/iData.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/iData/iData.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/iData/iData.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/iData/iData.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/iData/iData.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/iData/iData.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/iData/iData.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/iData/iData.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/iData/iData.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-4/ifThenElse-4.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-4/ifThenElse-4.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-4/ifThenElse-4.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-4/ifThenElse-4.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-4/ifThenElse-4.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-4/ifThenElse-4.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-4/ifThenElse-4.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-4/ifThenElse-4.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-4/ifThenElse-4.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-4/ifThenElse-4.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-4/ifThenElse-4.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-4/ifThenElse-4.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-bad-cond-1/ifThenElse-bad-cond-1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-bad-cond-1/ifThenElse-bad-cond-1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-bad-cond-1/ifThenElse-bad-cond-1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-bad-cond-1/ifThenElse-bad-cond-1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-bad-cond-1/ifThenElse-bad-cond-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-bad-cond-1/ifThenElse-bad-cond-1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-bad-cond-1/ifThenElse-bad-cond-1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-bad-cond-1/ifThenElse-bad-cond-1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-bad-cond-1/ifThenElse-bad-cond-1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-bad-cond-1/ifThenElse-bad-cond-1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-bad-cond-1/ifThenElse-bad-cond-1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-bad-cond-1/ifThenElse-bad-cond-1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-bad-cond-2/ifThenElse-bad-cond-2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-bad-cond-2/ifThenElse-bad-cond-2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-bad-cond-2/ifThenElse-bad-cond-2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-bad-cond-2/ifThenElse-bad-cond-2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-bad-cond-2/ifThenElse-bad-cond-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-bad-cond-2/ifThenElse-bad-cond-2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-bad-cond-2/ifThenElse-bad-cond-2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-bad-cond-2/ifThenElse-bad-cond-2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-bad-cond-2/ifThenElse-bad-cond-2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-bad-cond-2/ifThenElse-bad-cond-2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-bad-cond-2/ifThenElse-bad-cond-2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-bad-cond-2/ifThenElse-bad-cond-2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-no-force/ifThenElse-no-force.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-no-force/ifThenElse-no-force.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-no-force/ifThenElse-no-force.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-no-force/ifThenElse-no-force.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-no-force/ifThenElse-no-force.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-no-force/ifThenElse-no-force.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-no-force/ifThenElse-no-force.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-no-force/ifThenElse-no-force.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-no-force/ifThenElse-no-force.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-no-force/ifThenElse-no-force.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/ifThenElse/ifThenElse-no-force/ifThenElse-no-force.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/ifThenElse/ifThenElse-no-force/ifThenElse-no-force.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/indexByteString/indexByteStringOOB/indexByteStringOOB.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/indexByteString/indexByteStringOOB/indexByteStringOOB.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/indexByteString/indexByteStringOOB/indexByteStringOOB.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/indexByteString/indexByteStringOOB/indexByteStringOOB.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/indexByteString/indexByteStringOOB/indexByteStringOOB.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/indexByteString/indexByteStringOOB/indexByteStringOOB.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/indexByteString/indexByteStringOOB/indexByteStringOOB.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/indexByteString/indexByteStringOOB/indexByteStringOOB.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/indexByteString/indexByteStringOOB/indexByteStringOOB.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/indexByteString/indexByteStringOOB/indexByteStringOOB.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/indexByteString/indexByteStringOOB/indexByteStringOOB.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/indexByteString/indexByteStringOOB/indexByteStringOOB.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/indexByteString/indexByteStringOverflow/indexByteStringOverflow.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/indexByteString/indexByteStringOverflow/indexByteStringOverflow.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/indexByteString/indexByteStringOverflow/indexByteStringOverflow.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/indexByteString/indexByteStringOverflow/indexByteStringOverflow.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/indexByteString/indexByteStringOverflow/indexByteStringOverflow.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/indexByteString/indexByteStringOverflow/indexByteStringOverflow.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/indexByteString/indexByteStringOverflow/indexByteStringOverflow.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/indexByteString/indexByteStringOverflow/indexByteStringOverflow.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/indexByteString/indexByteStringOverflow/indexByteStringOverflow.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/indexByteString/indexByteStringOverflow/indexByteStringOverflow.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/indexByteString/indexByteStringOverflow/indexByteStringOverflow.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/indexByteString/indexByteStringOverflow/indexByteStringOverflow.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/negative-input/negative-input.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/negative-input/negative-input.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/negative-input/negative-input.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/negative-input/negative-input.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/negative-input/negative-input.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/negative-input/negative-input.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/negative-input/negative-input.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/negative-input/negative-input.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/negative-input/negative-input.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/negative-input/negative-input.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/negative-input/negative-input.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/negative-input/negative-input.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/negative-width/negative-width.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/negative-width/negative-width.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/negative-width/negative-width.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/negative-width/negative-width.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/negative-width/negative-width.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/negative-width/negative-width.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/negative-width/negative-width.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/negative-width/negative-width.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/negative-width/negative-width.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/negative-width/negative-width.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/negative-width/negative-width.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/negative-width/negative-width.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/too-narrow/too-narrow.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/too-narrow/too-narrow.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/too-narrow/too-narrow.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/too-narrow/too-narrow.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/too-narrow/too-narrow.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/too-narrow/too-narrow.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/too-narrow/too-narrow.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/too-narrow/too-narrow.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/too-narrow/too-narrow.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/too-narrow/too-narrow.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/too-narrow/too-narrow.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/too-narrow/too-narrow.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/width-too-big-zero/width-too-big-zero.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/width-too-big-zero/width-too-big-zero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/width-too-big-zero/width-too-big-zero.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/width-too-big-zero/width-too-big-zero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/input-too-big/input-too-big.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/input-too-big/input-too-big.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/input-too-big/input-too-big.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/input-too-big/input-too-big.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/input-too-big/input-too-big.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/input-too-big/input-too-big.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/input-too-big/input-too-big.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/input-too-big/input-too-big.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/input-too-big/input-too-big.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/input-too-big/input-too-big.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/input-too-big/input-too-big.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/input-too-big/input-too-big.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/negative-input/negative-input.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/negative-input/negative-input.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/negative-input/negative-input.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/negative-input/negative-input.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/negative-input/negative-input.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/negative-input/negative-input.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/negative-input/negative-input.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/negative-input/negative-input.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/negative-input/negative-input.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/negative-input/negative-input.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/negative-input/negative-input.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/negative-input/negative-input.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/negative-input/negative-input.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/negative-input/negative-input.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/negative-input/negative-input.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/negative-input/negative-input.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/negative-input/negative-input.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/negative-input/negative-input.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/negative-input/negative-input.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/negative-input/negative-input.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/negative-input/negative-input.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/negative-input/negative-input.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/negative-input/negative-input.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/negative-input/negative-input.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/negative-width/negative-width.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/negative-width/negative-width.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/negative-width/negative-width.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/negative-width/negative-width.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/negative-width/negative-width.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/negative-width/negative-width.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/negative-width/negative-width.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/negative-width/negative-width.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/negative-width/negative-width.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/negative-width/negative-width.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/negative-width/negative-width.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/negative-width/negative-width.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/too-narrow/too-narrow.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/too-narrow/too-narrow.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/too-narrow/too-narrow.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/too-narrow/too-narrow.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/too-narrow/too-narrow.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/too-narrow/too-narrow.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/too-narrow/too-narrow.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/too-narrow/too-narrow.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/too-narrow/too-narrow.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/too-narrow/too-narrow.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/too-narrow/too-narrow.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/too-narrow/too-narrow.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/width-too-big-zero/width-too-big-zero.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/width-too-big-zero/width-too-big-zero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/width-too-big-zero/width-too-big-zero.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/width-too-big-zero/width-too-big-zero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/input-too-big/input-too-big.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/input-too-big/input-too-big.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/input-too-big/input-too-big.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/input-too-big/input-too-big.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/input-too-big/input-too-big.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/input-too-big/input-too-big.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/input-too-big/input-too-big.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/input-too-big/input-too-big.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/input-too-big/input-too-big.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/input-too-big/input-too-big.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/input-too-big/input-too-big.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/input-too-big/input-too-big.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/negative-input/negative-input.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/negative-input/negative-input.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/negative-input/negative-input.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/negative-input/negative-input.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/negative-input/negative-input.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/negative-input/negative-input.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/negative-input/negative-input.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/negative-input/negative-input.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/negative-input/negative-input.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/negative-input/negative-input.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/negative-input/negative-input.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/negative-input/negative-input.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/listData/listData.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/listData/listData.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/listData/listData.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/listData/listData.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/listData/listData.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/listData/listData.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/listData/listData.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/listData/listData.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/listData/listData.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/listData/listData.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/listData/listData.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/listData/listData.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/listOfList/listOfList.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/listOfList/listOfList.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/listOfList/listOfList.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/listOfList/listOfList.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/listOfList/listOfList.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/listOfList/listOfList.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/listOfList/listOfList.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/listOfList/listOfList.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/listOfList/listOfList.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/listOfList/listOfList.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/listOfList/listOfList.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/listOfList/listOfList.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/listOfPair/listOfPair.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/listOfPair/listOfPair.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/listOfPair/listOfPair.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/listOfPair/listOfPair.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/listOfPair/listOfPair.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/listOfPair/listOfPair.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/listOfPair/listOfPair.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/listOfPair/listOfPair.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/listOfPair/listOfPair.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/listOfPair/listOfPair.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/listOfPair/listOfPair.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/listOfPair/listOfPair.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mapData/mapData.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/mapData/mapData.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mapData/mapData.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mapData/mapData.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mapData/mapData.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/mapData/mapData.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mapData/mapData.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mapData/mapData.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mapData/mapData.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/mapData/mapData.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mapData/mapData.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mapData/mapData.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/divideInteger/divideInteger.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/divideInteger/divideInteger.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/divideInteger/divideInteger.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/divideInteger/divideInteger.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/divideInteger/divideInteger.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/divideInteger/divideInteger.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/divideInteger/divideInteger.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/divideInteger/divideInteger.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/divideInteger/divideInteger.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/divideInteger/divideInteger.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/divideInteger/divideInteger.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/divideInteger/divideInteger.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/mkCons-fail/mkCons-fail.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/mkCons-fail/mkCons-fail.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/mkCons-fail/mkCons-fail.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/mkCons-fail/mkCons-fail.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/mkCons-fail/mkCons-fail.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/mkCons-fail/mkCons-fail.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/mkCons-fail/mkCons-fail.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/mkCons-fail/mkCons-fail.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/mkCons-fail/mkCons-fail.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/mkCons-fail/mkCons-fail.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/mkCons-fail/mkCons-fail.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/mkCons-fail/mkCons-fail.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/mkCons1/mkCons1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/mkCons1/mkCons1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/mkCons1/mkCons1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/mkCons1/mkCons1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/mkCons1/mkCons1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/mkCons1/mkCons1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/mkCons1/mkCons1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/mkCons1/mkCons1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/mkCons1/mkCons1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/mkCons1/mkCons1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/mkCons1/mkCons1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/mkCons1/mkCons1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/mkCons2/mkCons2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/mkCons2/mkCons2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/mkCons2/mkCons2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/mkCons2/mkCons2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/mkCons2/mkCons2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/mkCons2/mkCons2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/mkCons2/mkCons2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/mkCons2/mkCons2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/mkCons2/mkCons2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/mkCons2/mkCons2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkCons/mkCons2/mkCons2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mkCons/mkCons2/mkCons2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkNilData/mkNilData.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/mkNilData/mkNilData.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkNilData/mkNilData.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mkNilData/mkNilData.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkNilData/mkNilData.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/mkNilData/mkNilData.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkNilData/mkNilData.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mkNilData/mkNilData.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkNilData/mkNilData.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/mkNilData/mkNilData.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkNilData/mkNilData.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mkNilData/mkNilData.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkNilPairData/mkNilPairData.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/mkNilPairData/mkNilPairData.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkNilPairData/mkNilPairData.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mkNilPairData/mkNilPairData.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkNilPairData/mkNilPairData.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/mkNilPairData/mkNilPairData.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkNilPairData/mkNilPairData.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mkNilPairData/mkNilPairData.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkNilPairData/mkNilPairData.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/mkNilPairData/mkNilPairData.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkNilPairData/mkNilPairData.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mkNilPairData/mkNilPairData.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkPairData/mkPairData.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/mkPairData/mkPairData.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkPairData/mkPairData.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mkPairData/mkPairData.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkPairData/mkPairData.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/mkPairData/mkPairData.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkPairData/mkPairData.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mkPairData/mkPairData.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkPairData/mkPairData.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/mkPairData/mkPairData.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/mkPairData/mkPairData.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/mkPairData/mkPairData.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-zero/modInteger-zero.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-zero/modInteger-zero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-zero/modInteger-zero.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-zero/modInteger-zero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-zero/modInteger-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-zero/modInteger-zero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-zero/modInteger-zero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-zero/modInteger-zero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-zero/modInteger-zero.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-zero/modInteger-zero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger-zero/modInteger-zero.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger-zero/modInteger-zero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger1/modInteger1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger1/modInteger1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger1/modInteger1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger1/modInteger1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger1/modInteger1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger1/modInteger1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger1/modInteger1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger1/modInteger1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger1/modInteger1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger1/modInteger1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/modInteger/modInteger1/modInteger1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/modInteger/modInteger1/modInteger1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/nullList/nullList.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/nullList/nullList.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/nullList/nullList.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/nullList/nullList.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/nullList/nullList.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/nullList/nullList.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/nullList/nullList.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/nullList/nullList.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/nullList/nullList.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/nullList/nullList.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/nullList/nullList.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/nullList/nullList.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/nullList2/nullList2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/nullList2/nullList2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/nullList2/nullList2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/nullList2/nullList2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/nullList2/nullList2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/nullList2/nullList2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/nullList2/nullList2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/nullList2/nullList2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/nullList2/nullList2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/nullList2/nullList2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/nullList2/nullList2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/nullList2/nullList2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-zero/quotientInteger-zero.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-zero/quotientInteger-zero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-zero/quotientInteger-zero.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-zero/quotientInteger-zero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-zero/quotientInteger-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-zero/quotientInteger-zero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-zero/quotientInteger-zero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-zero/quotientInteger-zero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-zero/quotientInteger-zero.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-zero/quotientInteger-zero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger-zero/quotientInteger-zero.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger-zero/quotientInteger-zero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-zero/remainderInteger-zero.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-zero/remainderInteger-zero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-zero/remainderInteger-zero.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-zero/remainderInteger-zero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-zero/remainderInteger-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-zero/remainderInteger-zero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-zero/remainderInteger-zero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-zero/remainderInteger-zero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-zero/remainderInteger-zero.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-zero/remainderInteger-zero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger-zero/remainderInteger-zero.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger-zero/remainderInteger-zero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sndPairOfPairAndList/sndPairOfPairAndList.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/sndPairOfPairAndList/sndPairOfPairAndList.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sndPairOfPairAndList/sndPairOfPairAndList.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sndPairOfPairAndList/sndPairOfPairAndList.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sndPairOfPairAndList/sndPairOfPairAndList.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/sndPairOfPairAndList/sndPairOfPairAndList.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sndPairOfPairAndList/sndPairOfPairAndList.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sndPairOfPairAndList/sndPairOfPairAndList.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/sndPairOfPairAndList/sndPairOfPairAndList.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/sndPairOfPairAndList/sndPairOfPairAndList.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/sndPairOfPairAndList/sndPairOfPairAndList.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/sndPairOfPairAndList/sndPairOfPairAndList.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/tailList/tailList-partial/tailList-partial.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/tailList/tailList-partial/tailList-partial.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/tailList/tailList-partial/tailList-partial.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/tailList/tailList-partial/tailList-partial.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/tailList/tailList-partial/tailList-partial.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/tailList/tailList-partial/tailList-partial.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/tailList/tailList-partial/tailList-partial.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/tailList/tailList-partial/tailList-partial.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/tailList/tailList-partial/tailList-partial.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/tailList/tailList-partial/tailList-partial.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/tailList/tailList-partial/tailList-partial.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/tailList/tailList-partial/tailList-partial.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/tailList/tailList1/tailList1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/tailList/tailList1/tailList1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/tailList/tailList1/tailList1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/tailList/tailList1/tailList1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/tailList/tailList1/tailList1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/tailList/tailList1/tailList1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/tailList/tailList1/tailList1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/tailList/tailList1/tailList1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/tailList/tailList1/tailList1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/tailList/tailList1/tailList1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/tailList/tailList1/tailList1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/tailList/tailList1/tailList1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/trace/trace.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/trace/trace.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/trace/trace.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/trace/trace.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/trace/trace.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/trace/trace.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/trace/trace.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/trace/trace.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/trace/trace.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/trace/trace.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/trace/trace.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/trace/trace.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unBData/unBData-fail/unBData-fail.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/unBData/unBData-fail/unBData-fail.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unBData/unBData-fail/unBData-fail.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unBData/unBData-fail/unBData-fail.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unBData/unBData-fail/unBData-fail.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/unBData/unBData-fail/unBData-fail.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unBData/unBData-fail/unBData-fail.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unBData/unBData-fail/unBData-fail.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unBData/unBData-fail/unBData-fail.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/unBData/unBData-fail/unBData-fail.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unBData/unBData-fail/unBData-fail.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unBData/unBData-fail/unBData-fail.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unBData/unBData1/unBData1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/unBData/unBData1/unBData1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unBData/unBData1/unBData1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unBData/unBData1/unBData1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unBData/unBData1/unBData1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/unBData/unBData1/unBData1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unBData/unBData1/unBData1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unBData/unBData1/unBData1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unBData/unBData1/unBData1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/unBData/unBData1/unBData1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unBData/unBData1/unBData1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unBData/unBData1/unBData1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unConstrData/unConstrData-fail/unConstrData-fail.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/unConstrData/unConstrData-fail/unConstrData-fail.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unConstrData/unConstrData-fail/unConstrData-fail.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unConstrData/unConstrData-fail/unConstrData-fail.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unConstrData/unConstrData-fail/unConstrData-fail.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/unConstrData/unConstrData-fail/unConstrData-fail.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unConstrData/unConstrData-fail/unConstrData-fail.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unConstrData/unConstrData-fail/unConstrData-fail.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unConstrData/unConstrData-fail/unConstrData-fail.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/unConstrData/unConstrData-fail/unConstrData-fail.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unConstrData/unConstrData-fail/unConstrData-fail.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unConstrData/unConstrData-fail/unConstrData-fail.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unConstrData/unConstrData1/unConstrData1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/unConstrData/unConstrData1/unConstrData1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unConstrData/unConstrData1/unConstrData1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unConstrData/unConstrData1/unConstrData1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unConstrData/unConstrData1/unConstrData1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/unConstrData/unConstrData1/unConstrData1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unConstrData/unConstrData1/unConstrData1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unConstrData/unConstrData1/unConstrData1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unConstrData/unConstrData1/unConstrData1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/unConstrData/unConstrData1/unConstrData1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unConstrData/unConstrData1/unConstrData1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unConstrData/unConstrData1/unConstrData1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unIData/unIData-fail/unIData-fail.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/unIData/unIData-fail/unIData-fail.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unIData/unIData-fail/unIData-fail.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unIData/unIData-fail/unIData-fail.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unIData/unIData-fail/unIData-fail.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/unIData/unIData-fail/unIData-fail.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unIData/unIData-fail/unIData-fail.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unIData/unIData-fail/unIData-fail.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unIData/unIData-fail/unIData-fail.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/unIData/unIData-fail/unIData-fail.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unIData/unIData-fail/unIData-fail.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unIData/unIData-fail/unIData-fail.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unIData/unIData1/unIData1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/unIData/unIData1/unIData1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unIData/unIData1/unIData1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unIData/unIData1/unIData1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unIData/unIData1/unIData1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/unIData/unIData1/unIData1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unIData/unIData1/unIData1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unIData/unIData1/unIData1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unIData/unIData1/unIData1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/unIData/unIData1/unIData1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unIData/unIData1/unIData1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unIData/unIData1/unIData1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unListData/unListData-fail/unListData-fail.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/unListData/unListData-fail/unListData-fail.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unListData/unListData-fail/unListData-fail.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unListData/unListData-fail/unListData-fail.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unListData/unListData-fail/unListData-fail.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/unListData/unListData-fail/unListData-fail.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unListData/unListData-fail/unListData-fail.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unListData/unListData-fail/unListData-fail.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unListData/unListData-fail/unListData-fail.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/unListData/unListData-fail/unListData-fail.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unListData/unListData-fail/unListData-fail.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unListData/unListData-fail/unListData-fail.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unListData/unListData1/unListData1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/unListData/unListData1/unListData1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unListData/unListData1/unListData1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unListData/unListData1/unListData1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unListData/unListData1/unListData1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/unListData/unListData1/unListData1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unListData/unListData1/unListData1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unListData/unListData1/unListData1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unListData/unListData1/unListData1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/unListData/unListData1/unListData1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unListData/unListData1/unListData1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unListData/unListData1/unListData1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unMapData/unMapData-fail/unMapData-fail.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/unMapData/unMapData-fail/unMapData-fail.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unMapData/unMapData-fail/unMapData-fail.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unMapData/unMapData-fail/unMapData-fail.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unMapData/unMapData-fail/unMapData-fail.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/unMapData/unMapData-fail/unMapData-fail.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unMapData/unMapData-fail/unMapData-fail.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unMapData/unMapData-fail/unMapData-fail.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unMapData/unMapData-fail/unMapData-fail.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/unMapData/unMapData-fail/unMapData-fail.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unMapData/unMapData-fail/unMapData-fail.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unMapData/unMapData-fail/unMapData-fail.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unMapData/unMapData1/unMapData1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/unMapData/unMapData1/unMapData1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unMapData/unMapData1/unMapData1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unMapData/unMapData1/unMapData1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unMapData/unMapData1/unMapData1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/unMapData/unMapData1/unMapData1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unMapData/unMapData1/unMapData1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unMapData/unMapData1/unMapData1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/unMapData/unMapData1/unMapData1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/unMapData/unMapData1/unMapData1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/unMapData/unMapData1/unMapData1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/unMapData/unMapData1/unMapData1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-invalid-key/verifyEcdsaSecp256k1Signature-invalid-key.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-invalid-key/verifyEcdsaSecp256k1Signature-invalid-key.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-invalid-key/verifyEcdsaSecp256k1Signature-invalid-key.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-invalid-key/verifyEcdsaSecp256k1Signature-invalid-key.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-invalid-key/verifyEcdsaSecp256k1Signature-invalid-key.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-invalid-key/verifyEcdsaSecp256k1Signature-invalid-key.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-invalid-key/verifyEcdsaSecp256k1Signature-invalid-key.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-invalid-key/verifyEcdsaSecp256k1Signature-invalid-key.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-invalid-key/verifyEcdsaSecp256k1Signature-invalid-key.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-invalid-key/verifyEcdsaSecp256k1Signature-invalid-key.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-invalid-key/verifyEcdsaSecp256k1Signature-invalid-key.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-invalid-key/verifyEcdsaSecp256k1Signature-invalid-key.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-key/verifyEcdsaSecp256k1Signature-long-key.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-key/verifyEcdsaSecp256k1Signature-long-key.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-key/verifyEcdsaSecp256k1Signature-long-key.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-key/verifyEcdsaSecp256k1Signature-long-key.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-key/verifyEcdsaSecp256k1Signature-long-key.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-key/verifyEcdsaSecp256k1Signature-long-key.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-key/verifyEcdsaSecp256k1Signature-long-key.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-key/verifyEcdsaSecp256k1Signature-long-key.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-key/verifyEcdsaSecp256k1Signature-long-key.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-key/verifyEcdsaSecp256k1Signature-long-key.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-key/verifyEcdsaSecp256k1Signature-long-key.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-key/verifyEcdsaSecp256k1Signature-long-key.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-msg/verifyEcdsaSecp256k1Signature-long-msg.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-msg/verifyEcdsaSecp256k1Signature-long-msg.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-msg/verifyEcdsaSecp256k1Signature-long-msg.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-msg/verifyEcdsaSecp256k1Signature-long-msg.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-msg/verifyEcdsaSecp256k1Signature-long-msg.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-msg/verifyEcdsaSecp256k1Signature-long-msg.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-msg/verifyEcdsaSecp256k1Signature-long-msg.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-msg/verifyEcdsaSecp256k1Signature-long-msg.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-msg/verifyEcdsaSecp256k1Signature-long-msg.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-msg/verifyEcdsaSecp256k1Signature-long-msg.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-msg/verifyEcdsaSecp256k1Signature-long-msg.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-msg/verifyEcdsaSecp256k1Signature-long-msg.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-sig/verifyEcdsaSecp256k1Signature-long-sig.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-sig/verifyEcdsaSecp256k1Signature-long-sig.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-sig/verifyEcdsaSecp256k1Signature-long-sig.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-sig/verifyEcdsaSecp256k1Signature-long-sig.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-sig/verifyEcdsaSecp256k1Signature-long-sig.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-sig/verifyEcdsaSecp256k1Signature-long-sig.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-sig/verifyEcdsaSecp256k1Signature-long-sig.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-sig/verifyEcdsaSecp256k1Signature-long-sig.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-sig/verifyEcdsaSecp256k1Signature-long-sig.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-sig/verifyEcdsaSecp256k1Signature-long-sig.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-sig/verifyEcdsaSecp256k1Signature-long-sig.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-long-sig/verifyEcdsaSecp256k1Signature-long-sig.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-key/verifyEcdsaSecp256k1Signature-short-key.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-key/verifyEcdsaSecp256k1Signature-short-key.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-key/verifyEcdsaSecp256k1Signature-short-key.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-key/verifyEcdsaSecp256k1Signature-short-key.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-key/verifyEcdsaSecp256k1Signature-short-key.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-key/verifyEcdsaSecp256k1Signature-short-key.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-key/verifyEcdsaSecp256k1Signature-short-key.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-key/verifyEcdsaSecp256k1Signature-short-key.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-key/verifyEcdsaSecp256k1Signature-short-key.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-key/verifyEcdsaSecp256k1Signature-short-key.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-key/verifyEcdsaSecp256k1Signature-short-key.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-key/verifyEcdsaSecp256k1Signature-short-key.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-msg/verifyEcdsaSecp256k1Signature-short-msg.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-msg/verifyEcdsaSecp256k1Signature-short-msg.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-msg/verifyEcdsaSecp256k1Signature-short-msg.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-msg/verifyEcdsaSecp256k1Signature-short-msg.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-msg/verifyEcdsaSecp256k1Signature-short-msg.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-msg/verifyEcdsaSecp256k1Signature-short-msg.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-msg/verifyEcdsaSecp256k1Signature-short-msg.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-msg/verifyEcdsaSecp256k1Signature-short-msg.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-msg/verifyEcdsaSecp256k1Signature-short-msg.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-msg/verifyEcdsaSecp256k1Signature-short-msg.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-msg/verifyEcdsaSecp256k1Signature-short-msg.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-msg/verifyEcdsaSecp256k1Signature-short-msg.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-sig/verifyEcdsaSecp256k1Signature-short-sig.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-sig/verifyEcdsaSecp256k1Signature-short-sig.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-sig/verifyEcdsaSecp256k1Signature-short-sig.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-sig/verifyEcdsaSecp256k1Signature-short-sig.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-sig/verifyEcdsaSecp256k1Signature-short-sig.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-sig/verifyEcdsaSecp256k1Signature-short-sig.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-sig/verifyEcdsaSecp256k1Signature-short-sig.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-sig/verifyEcdsaSecp256k1Signature-short-sig.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-sig/verifyEcdsaSecp256k1Signature-short-sig.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-sig/verifyEcdsaSecp256k1Signature-short-sig.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-sig/verifyEcdsaSecp256k1Signature-short-sig.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEcdsaSecp256k1Signature/verifyEcdsaSecp256k1Signature-short-sig/verifyEcdsaSecp256k1Signature-short-sig.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature1/verifyEd25519Signature1.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature1/verifyEd25519Signature1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature1/verifyEd25519Signature1.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature1/verifyEd25519Signature1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature1/verifyEd25519Signature1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature1/verifyEd25519Signature1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature1/verifyEd25519Signature1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature1/verifyEd25519Signature1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature1/verifyEd25519Signature1.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature1/verifyEd25519Signature1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature1/verifyEd25519Signature1.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature1/verifyEd25519Signature1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature10/verifyEd25519Signature10.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature10/verifyEd25519Signature10.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature10/verifyEd25519Signature10.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature10/verifyEd25519Signature10.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature10/verifyEd25519Signature10.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature10/verifyEd25519Signature10.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature10/verifyEd25519Signature10.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature10/verifyEd25519Signature10.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature10/verifyEd25519Signature10.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature10/verifyEd25519Signature10.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature10/verifyEd25519Signature10.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature10/verifyEd25519Signature10.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature11/verifyEd25519Signature11.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature11/verifyEd25519Signature11.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature11/verifyEd25519Signature11.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature11/verifyEd25519Signature11.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature11/verifyEd25519Signature11.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature11/verifyEd25519Signature11.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature11/verifyEd25519Signature11.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature11/verifyEd25519Signature11.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature11/verifyEd25519Signature11.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature11/verifyEd25519Signature11.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature11/verifyEd25519Signature11.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature11/verifyEd25519Signature11.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature12/verifyEd25519Signature12.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature12/verifyEd25519Signature12.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature12/verifyEd25519Signature12.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature12/verifyEd25519Signature12.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature12/verifyEd25519Signature12.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature12/verifyEd25519Signature12.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature12/verifyEd25519Signature12.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature12/verifyEd25519Signature12.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature12/verifyEd25519Signature12.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature12/verifyEd25519Signature12.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature12/verifyEd25519Signature12.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature12/verifyEd25519Signature12.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature13/verifyEd25519Signature13.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature13/verifyEd25519Signature13.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature13/verifyEd25519Signature13.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature13/verifyEd25519Signature13.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature13/verifyEd25519Signature13.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature13/verifyEd25519Signature13.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature13/verifyEd25519Signature13.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature13/verifyEd25519Signature13.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature13/verifyEd25519Signature13.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature13/verifyEd25519Signature13.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature13/verifyEd25519Signature13.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature13/verifyEd25519Signature13.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature14/verifyEd25519Signature14.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature14/verifyEd25519Signature14.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature14/verifyEd25519Signature14.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature14/verifyEd25519Signature14.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature14/verifyEd25519Signature14.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature14/verifyEd25519Signature14.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature14/verifyEd25519Signature14.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature14/verifyEd25519Signature14.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature14/verifyEd25519Signature14.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature14/verifyEd25519Signature14.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature14/verifyEd25519Signature14.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature14/verifyEd25519Signature14.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature15/verifyEd25519Signature15.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature15/verifyEd25519Signature15.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature15/verifyEd25519Signature15.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature15/verifyEd25519Signature15.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature15/verifyEd25519Signature15.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature15/verifyEd25519Signature15.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature15/verifyEd25519Signature15.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature15/verifyEd25519Signature15.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature15/verifyEd25519Signature15.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature15/verifyEd25519Signature15.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature15/verifyEd25519Signature15.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature15/verifyEd25519Signature15.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature16/verifyEd25519Signature16.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature16/verifyEd25519Signature16.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature16/verifyEd25519Signature16.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature16/verifyEd25519Signature16.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature16/verifyEd25519Signature16.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature16/verifyEd25519Signature16.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature16/verifyEd25519Signature16.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature16/verifyEd25519Signature16.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature16/verifyEd25519Signature16.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature16/verifyEd25519Signature16.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature16/verifyEd25519Signature16.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature16/verifyEd25519Signature16.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature17/verifyEd25519Signature17.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature17/verifyEd25519Signature17.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature17/verifyEd25519Signature17.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature17/verifyEd25519Signature17.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature17/verifyEd25519Signature17.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature17/verifyEd25519Signature17.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature17/verifyEd25519Signature17.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature17/verifyEd25519Signature17.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature17/verifyEd25519Signature17.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature17/verifyEd25519Signature17.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature17/verifyEd25519Signature17.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature17/verifyEd25519Signature17.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature18/verifyEd25519Signature18.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature18/verifyEd25519Signature18.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature18/verifyEd25519Signature18.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature18/verifyEd25519Signature18.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature18/verifyEd25519Signature18.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature18/verifyEd25519Signature18.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature18/verifyEd25519Signature18.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature18/verifyEd25519Signature18.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature18/verifyEd25519Signature18.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature18/verifyEd25519Signature18.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature18/verifyEd25519Signature18.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature18/verifyEd25519Signature18.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature19/verifyEd25519Signature19.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature19/verifyEd25519Signature19.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature19/verifyEd25519Signature19.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature19/verifyEd25519Signature19.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature19/verifyEd25519Signature19.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature19/verifyEd25519Signature19.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature19/verifyEd25519Signature19.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature19/verifyEd25519Signature19.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature19/verifyEd25519Signature19.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature19/verifyEd25519Signature19.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature19/verifyEd25519Signature19.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature19/verifyEd25519Signature19.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature2/verifyEd25519Signature2.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature2/verifyEd25519Signature2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature2/verifyEd25519Signature2.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature2/verifyEd25519Signature2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature2/verifyEd25519Signature2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature2/verifyEd25519Signature2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature2/verifyEd25519Signature2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature2/verifyEd25519Signature2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature2/verifyEd25519Signature2.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature2/verifyEd25519Signature2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature2/verifyEd25519Signature2.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature2/verifyEd25519Signature2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature20/verifyEd25519Signature20.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature20/verifyEd25519Signature20.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature20/verifyEd25519Signature20.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature20/verifyEd25519Signature20.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature20/verifyEd25519Signature20.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature20/verifyEd25519Signature20.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature20/verifyEd25519Signature20.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature20/verifyEd25519Signature20.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature20/verifyEd25519Signature20.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature20/verifyEd25519Signature20.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature20/verifyEd25519Signature20.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature20/verifyEd25519Signature20.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature21/verifyEd25519Signature21.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature21/verifyEd25519Signature21.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature21/verifyEd25519Signature21.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature21/verifyEd25519Signature21.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature21/verifyEd25519Signature21.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature21/verifyEd25519Signature21.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature21/verifyEd25519Signature21.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature21/verifyEd25519Signature21.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature21/verifyEd25519Signature21.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature21/verifyEd25519Signature21.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature21/verifyEd25519Signature21.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature21/verifyEd25519Signature21.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature22/verifyEd25519Signature22.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature22/verifyEd25519Signature22.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature22/verifyEd25519Signature22.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature22/verifyEd25519Signature22.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature22/verifyEd25519Signature22.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature22/verifyEd25519Signature22.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature22/verifyEd25519Signature22.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature22/verifyEd25519Signature22.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature22/verifyEd25519Signature22.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature22/verifyEd25519Signature22.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature22/verifyEd25519Signature22.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature22/verifyEd25519Signature22.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature23/verifyEd25519Signature23.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature23/verifyEd25519Signature23.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature23/verifyEd25519Signature23.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature23/verifyEd25519Signature23.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature23/verifyEd25519Signature23.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature23/verifyEd25519Signature23.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature23/verifyEd25519Signature23.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature23/verifyEd25519Signature23.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature23/verifyEd25519Signature23.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature23/verifyEd25519Signature23.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature23/verifyEd25519Signature23.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature23/verifyEd25519Signature23.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature24/verifyEd25519Signature24.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature24/verifyEd25519Signature24.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature24/verifyEd25519Signature24.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature24/verifyEd25519Signature24.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature24/verifyEd25519Signature24.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature24/verifyEd25519Signature24.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature24/verifyEd25519Signature24.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature24/verifyEd25519Signature24.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature24/verifyEd25519Signature24.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature24/verifyEd25519Signature24.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature24/verifyEd25519Signature24.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature24/verifyEd25519Signature24.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature25/verifyEd25519Signature25.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature25/verifyEd25519Signature25.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature25/verifyEd25519Signature25.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature25/verifyEd25519Signature25.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature25/verifyEd25519Signature25.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature25/verifyEd25519Signature25.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature25/verifyEd25519Signature25.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature25/verifyEd25519Signature25.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature25/verifyEd25519Signature25.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature25/verifyEd25519Signature25.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature25/verifyEd25519Signature25.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature25/verifyEd25519Signature25.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature26/verifyEd25519Signature26.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature26/verifyEd25519Signature26.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature26/verifyEd25519Signature26.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature26/verifyEd25519Signature26.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature26/verifyEd25519Signature26.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature26/verifyEd25519Signature26.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature26/verifyEd25519Signature26.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature26/verifyEd25519Signature26.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature26/verifyEd25519Signature26.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature26/verifyEd25519Signature26.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature26/verifyEd25519Signature26.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature26/verifyEd25519Signature26.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature27/verifyEd25519Signature27.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature27/verifyEd25519Signature27.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature27/verifyEd25519Signature27.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature27/verifyEd25519Signature27.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature27/verifyEd25519Signature27.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature27/verifyEd25519Signature27.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature27/verifyEd25519Signature27.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature27/verifyEd25519Signature27.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature27/verifyEd25519Signature27.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature27/verifyEd25519Signature27.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature27/verifyEd25519Signature27.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature27/verifyEd25519Signature27.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature28/verifyEd25519Signature28.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature28/verifyEd25519Signature28.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature28/verifyEd25519Signature28.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature28/verifyEd25519Signature28.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature28/verifyEd25519Signature28.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature28/verifyEd25519Signature28.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature28/verifyEd25519Signature28.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature28/verifyEd25519Signature28.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature28/verifyEd25519Signature28.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature28/verifyEd25519Signature28.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature28/verifyEd25519Signature28.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature28/verifyEd25519Signature28.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature29/verifyEd25519Signature29.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature29/verifyEd25519Signature29.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature29/verifyEd25519Signature29.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature29/verifyEd25519Signature29.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature29/verifyEd25519Signature29.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature29/verifyEd25519Signature29.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature29/verifyEd25519Signature29.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature29/verifyEd25519Signature29.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature29/verifyEd25519Signature29.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature29/verifyEd25519Signature29.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature29/verifyEd25519Signature29.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature29/verifyEd25519Signature29.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature3/verifyEd25519Signature3.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature3/verifyEd25519Signature3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature3/verifyEd25519Signature3.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature3/verifyEd25519Signature3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature3/verifyEd25519Signature3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature3/verifyEd25519Signature3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature3/verifyEd25519Signature3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature3/verifyEd25519Signature3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature3/verifyEd25519Signature3.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature3/verifyEd25519Signature3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature3/verifyEd25519Signature3.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature3/verifyEd25519Signature3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature30/verifyEd25519Signature30.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature30/verifyEd25519Signature30.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature30/verifyEd25519Signature30.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature30/verifyEd25519Signature30.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature30/verifyEd25519Signature30.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature30/verifyEd25519Signature30.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature30/verifyEd25519Signature30.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature30/verifyEd25519Signature30.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature30/verifyEd25519Signature30.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature30/verifyEd25519Signature30.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature30/verifyEd25519Signature30.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature30/verifyEd25519Signature30.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature31/verifyEd25519Signature31.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature31/verifyEd25519Signature31.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature31/verifyEd25519Signature31.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature31/verifyEd25519Signature31.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature31/verifyEd25519Signature31.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature31/verifyEd25519Signature31.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature31/verifyEd25519Signature31.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature31/verifyEd25519Signature31.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature31/verifyEd25519Signature31.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature31/verifyEd25519Signature31.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature31/verifyEd25519Signature31.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature31/verifyEd25519Signature31.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature4/verifyEd25519Signature4.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature4/verifyEd25519Signature4.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature4/verifyEd25519Signature4.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature4/verifyEd25519Signature4.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature4/verifyEd25519Signature4.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature4/verifyEd25519Signature4.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature4/verifyEd25519Signature4.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature4/verifyEd25519Signature4.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature4/verifyEd25519Signature4.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature4/verifyEd25519Signature4.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature4/verifyEd25519Signature4.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature4/verifyEd25519Signature4.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature5/verifyEd25519Signature5.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature5/verifyEd25519Signature5.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature5/verifyEd25519Signature5.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature5/verifyEd25519Signature5.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature5/verifyEd25519Signature5.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature5/verifyEd25519Signature5.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature5/verifyEd25519Signature5.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature5/verifyEd25519Signature5.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature5/verifyEd25519Signature5.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature5/verifyEd25519Signature5.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature5/verifyEd25519Signature5.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature5/verifyEd25519Signature5.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature6/verifyEd25519Signature6.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature6/verifyEd25519Signature6.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature6/verifyEd25519Signature6.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature6/verifyEd25519Signature6.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature6/verifyEd25519Signature6.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature6/verifyEd25519Signature6.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature6/verifyEd25519Signature6.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature6/verifyEd25519Signature6.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature6/verifyEd25519Signature6.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature6/verifyEd25519Signature6.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature6/verifyEd25519Signature6.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature6/verifyEd25519Signature6.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature7/verifyEd25519Signature7.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature7/verifyEd25519Signature7.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature7/verifyEd25519Signature7.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature7/verifyEd25519Signature7.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature7/verifyEd25519Signature7.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature7/verifyEd25519Signature7.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature7/verifyEd25519Signature7.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature7/verifyEd25519Signature7.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature7/verifyEd25519Signature7.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature7/verifyEd25519Signature7.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature7/verifyEd25519Signature7.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature7/verifyEd25519Signature7.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature8/verifyEd25519Signature8.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature8/verifyEd25519Signature8.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature8/verifyEd25519Signature8.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature8/verifyEd25519Signature8.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature8/verifyEd25519Signature8.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature8/verifyEd25519Signature8.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature8/verifyEd25519Signature8.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature8/verifyEd25519Signature8.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature8/verifyEd25519Signature8.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature8/verifyEd25519Signature8.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature8/verifyEd25519Signature8.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature8/verifyEd25519Signature8.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature9/verifyEd25519Signature9.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature9/verifyEd25519Signature9.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature9/verifyEd25519Signature9.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature9/verifyEd25519Signature9.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature9/verifyEd25519Signature9.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature9/verifyEd25519Signature9.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature9/verifyEd25519Signature9.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature9/verifyEd25519Signature9.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature9/verifyEd25519Signature9.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature9/verifyEd25519Signature9.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature9/verifyEd25519Signature9.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature9/verifyEd25519Signature9.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongKey/verifyEd25519SignatureLongKey.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongKey/verifyEd25519SignatureLongKey.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongKey/verifyEd25519SignatureLongKey.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongKey/verifyEd25519SignatureLongKey.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongKey/verifyEd25519SignatureLongKey.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongKey/verifyEd25519SignatureLongKey.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongKey/verifyEd25519SignatureLongKey.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongKey/verifyEd25519SignatureLongKey.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongKey/verifyEd25519SignatureLongKey.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongKey/verifyEd25519SignatureLongKey.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongKey/verifyEd25519SignatureLongKey.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongKey/verifyEd25519SignatureLongKey.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongSig/verifyEd25519SignatureLongSig.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongSig/verifyEd25519SignatureLongSig.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongSig/verifyEd25519SignatureLongSig.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongSig/verifyEd25519SignatureLongSig.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongSig/verifyEd25519SignatureLongSig.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongSig/verifyEd25519SignatureLongSig.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongSig/verifyEd25519SignatureLongSig.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongSig/verifyEd25519SignatureLongSig.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongSig/verifyEd25519SignatureLongSig.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongSig/verifyEd25519SignatureLongSig.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongSig/verifyEd25519SignatureLongSig.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureLongSig/verifyEd25519SignatureLongSig.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortKey/verifyEd25519SignatureShortKey.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortKey/verifyEd25519SignatureShortKey.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortKey/verifyEd25519SignatureShortKey.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortKey/verifyEd25519SignatureShortKey.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortKey/verifyEd25519SignatureShortKey.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortKey/verifyEd25519SignatureShortKey.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortKey/verifyEd25519SignatureShortKey.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortKey/verifyEd25519SignatureShortKey.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortKey/verifyEd25519SignatureShortKey.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortKey/verifyEd25519SignatureShortKey.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortKey/verifyEd25519SignatureShortKey.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortKey/verifyEd25519SignatureShortKey.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortSig/verifyEd25519SignatureShortSig.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortSig/verifyEd25519SignatureShortSig.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortSig/verifyEd25519SignatureShortSig.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortSig/verifyEd25519SignatureShortSig.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortSig/verifyEd25519SignatureShortSig.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortSig/verifyEd25519SignatureShortSig.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortSig/verifyEd25519SignatureShortSig.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortSig/verifyEd25519SignatureShortSig.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortSig/verifyEd25519SignatureShortSig.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortSig/verifyEd25519SignatureShortSig.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortSig/verifyEd25519SignatureShortSig.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifyEd25519Signature/verifyEd25519SignatureShortSig/verifyEd25519SignatureShortSig.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-key/verifySchnorrSecp256k1Signature-long-key.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-key/verifySchnorrSecp256k1Signature-long-key.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-key/verifySchnorrSecp256k1Signature-long-key.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-key/verifySchnorrSecp256k1Signature-long-key.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-key/verifySchnorrSecp256k1Signature-long-key.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-key/verifySchnorrSecp256k1Signature-long-key.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-key/verifySchnorrSecp256k1Signature-long-key.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-key/verifySchnorrSecp256k1Signature-long-key.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-key/verifySchnorrSecp256k1Signature-long-key.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-key/verifySchnorrSecp256k1Signature-long-key.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-key/verifySchnorrSecp256k1Signature-long-key.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-key/verifySchnorrSecp256k1Signature-long-key.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-sig/verifySchnorrSecp256k1Signature-long-sig.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-sig/verifySchnorrSecp256k1Signature-long-sig.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-sig/verifySchnorrSecp256k1Signature-long-sig.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-sig/verifySchnorrSecp256k1Signature-long-sig.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-sig/verifySchnorrSecp256k1Signature-long-sig.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-sig/verifySchnorrSecp256k1Signature-long-sig.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-sig/verifySchnorrSecp256k1Signature-long-sig.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-sig/verifySchnorrSecp256k1Signature-long-sig.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-sig/verifySchnorrSecp256k1Signature-long-sig.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-sig/verifySchnorrSecp256k1Signature-long-sig.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-sig/verifySchnorrSecp256k1Signature-long-sig.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-long-sig/verifySchnorrSecp256k1Signature-long-sig.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-key/verifySchnorrSecp256k1Signature-short-key.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-key/verifySchnorrSecp256k1Signature-short-key.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-key/verifySchnorrSecp256k1Signature-short-key.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-key/verifySchnorrSecp256k1Signature-short-key.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-key/verifySchnorrSecp256k1Signature-short-key.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-key/verifySchnorrSecp256k1Signature-short-key.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-key/verifySchnorrSecp256k1Signature-short-key.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-key/verifySchnorrSecp256k1Signature-short-key.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-key/verifySchnorrSecp256k1Signature-short-key.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-key/verifySchnorrSecp256k1Signature-short-key.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-key/verifySchnorrSecp256k1Signature-short-key.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-key/verifySchnorrSecp256k1Signature-short-key.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-sig/verifySchnorrSecp256k1Signature-short-sig.uplc b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-sig/verifySchnorrSecp256k1Signature-short-sig.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-sig/verifySchnorrSecp256k1Signature-short-sig.uplc rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-sig/verifySchnorrSecp256k1Signature-short-sig.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-sig/verifySchnorrSecp256k1Signature-short-sig.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-sig/verifySchnorrSecp256k1Signature-short-sig.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-sig/verifySchnorrSecp256k1Signature-short-sig.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-sig/verifySchnorrSecp256k1Signature-short-sig.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-sig/verifySchnorrSecp256k1Signature-short-sig.uplc.expected b/crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-sig/verifySchnorrSecp256k1Signature-short-sig.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-sig/verifySchnorrSecp256k1Signature-short-sig.uplc.expected rename to crates/uplc/test_data/conformance/v2/builtin/semantics/verifySchnorrSecp256k1Signature/verifySchnorrSecp256k1Signature-short-sig/verifySchnorrSecp256k1Signature-short-sig.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/ApplyAdd1/ApplyAdd1.uplc b/crates/uplc/test_data/conformance/v2/example/ApplyAdd1/ApplyAdd1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/ApplyAdd1/ApplyAdd1.uplc rename to crates/uplc/test_data/conformance/v2/example/ApplyAdd1/ApplyAdd1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/example/ApplyAdd1/ApplyAdd1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/example/ApplyAdd1/ApplyAdd1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/ApplyAdd1/ApplyAdd1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/example/ApplyAdd1/ApplyAdd1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/ApplyAdd1/ApplyAdd1.uplc.expected b/crates/uplc/test_data/conformance/v2/example/ApplyAdd1/ApplyAdd1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/ApplyAdd1/ApplyAdd1.uplc.expected rename to crates/uplc/test_data/conformance/v2/example/ApplyAdd1/ApplyAdd1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/ApplyAdd2/ApplyAdd2.uplc b/crates/uplc/test_data/conformance/v2/example/ApplyAdd2/ApplyAdd2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/ApplyAdd2/ApplyAdd2.uplc rename to crates/uplc/test_data/conformance/v2/example/ApplyAdd2/ApplyAdd2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/example/ApplyAdd2/ApplyAdd2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/example/ApplyAdd2/ApplyAdd2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/ApplyAdd2/ApplyAdd2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/example/ApplyAdd2/ApplyAdd2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/ApplyAdd2/ApplyAdd2.uplc.expected b/crates/uplc/test_data/conformance/v2/example/ApplyAdd2/ApplyAdd2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/ApplyAdd2/ApplyAdd2.uplc.expected rename to crates/uplc/test_data/conformance/v2/example/ApplyAdd2/ApplyAdd2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/DivideByZero/DivideByZero.uplc b/crates/uplc/test_data/conformance/v2/example/DivideByZero/DivideByZero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/DivideByZero/DivideByZero.uplc rename to crates/uplc/test_data/conformance/v2/example/DivideByZero/DivideByZero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/example/DivideByZero/DivideByZero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/example/DivideByZero/DivideByZero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/DivideByZero/DivideByZero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/example/DivideByZero/DivideByZero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/DivideByZero/DivideByZero.uplc.expected b/crates/uplc/test_data/conformance/v2/example/DivideByZero/DivideByZero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/DivideByZero/DivideByZero.uplc.expected rename to crates/uplc/test_data/conformance/v2/example/DivideByZero/DivideByZero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/DivideByZeroDrop/DivideByZeroDrop.uplc b/crates/uplc/test_data/conformance/v2/example/DivideByZeroDrop/DivideByZeroDrop.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/DivideByZeroDrop/DivideByZeroDrop.uplc rename to crates/uplc/test_data/conformance/v2/example/DivideByZeroDrop/DivideByZeroDrop.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/example/DivideByZeroDrop/DivideByZeroDrop.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/example/DivideByZeroDrop/DivideByZeroDrop.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/DivideByZeroDrop/DivideByZeroDrop.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/example/DivideByZeroDrop/DivideByZeroDrop.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/DivideByZeroDrop/DivideByZeroDrop.uplc.expected b/crates/uplc/test_data/conformance/v2/example/DivideByZeroDrop/DivideByZeroDrop.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/DivideByZeroDrop/DivideByZeroDrop.uplc.expected rename to crates/uplc/test_data/conformance/v2/example/DivideByZeroDrop/DivideByZeroDrop.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/IfIntegers/IfIntegers.uplc b/crates/uplc/test_data/conformance/v2/example/IfIntegers/IfIntegers.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/IfIntegers/IfIntegers.uplc rename to crates/uplc/test_data/conformance/v2/example/IfIntegers/IfIntegers.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/example/IfIntegers/IfIntegers.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/example/IfIntegers/IfIntegers.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/IfIntegers/IfIntegers.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/example/IfIntegers/IfIntegers.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/IfIntegers/IfIntegers.uplc.expected b/crates/uplc/test_data/conformance/v2/example/IfIntegers/IfIntegers.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/IfIntegers/IfIntegers.uplc.expected rename to crates/uplc/test_data/conformance/v2/example/IfIntegers/IfIntegers.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/NatRoundTrip/NatRoundTrip.uplc b/crates/uplc/test_data/conformance/v2/example/NatRoundTrip/NatRoundTrip.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/NatRoundTrip/NatRoundTrip.uplc rename to crates/uplc/test_data/conformance/v2/example/NatRoundTrip/NatRoundTrip.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/example/NatRoundTrip/NatRoundTrip.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/example/NatRoundTrip/NatRoundTrip.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/NatRoundTrip/NatRoundTrip.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/example/NatRoundTrip/NatRoundTrip.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/NatRoundTrip/NatRoundTrip.uplc.expected b/crates/uplc/test_data/conformance/v2/example/NatRoundTrip/NatRoundTrip.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/NatRoundTrip/NatRoundTrip.uplc.expected rename to crates/uplc/test_data/conformance/v2/example/NatRoundTrip/NatRoundTrip.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/ScottListSum/ScottListSum.uplc b/crates/uplc/test_data/conformance/v2/example/ScottListSum/ScottListSum.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/ScottListSum/ScottListSum.uplc rename to crates/uplc/test_data/conformance/v2/example/ScottListSum/ScottListSum.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/example/ScottListSum/ScottListSum.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/example/ScottListSum/ScottListSum.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/ScottListSum/ScottListSum.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/example/ScottListSum/ScottListSum.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/ScottListSum/ScottListSum.uplc.expected b/crates/uplc/test_data/conformance/v2/example/ScottListSum/ScottListSum.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/ScottListSum/ScottListSum.uplc.expected rename to crates/uplc/test_data/conformance/v2/example/ScottListSum/ScottListSum.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/churchSucc/churchSucc.uplc b/crates/uplc/test_data/conformance/v2/example/churchSucc/churchSucc.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/churchSucc/churchSucc.uplc rename to crates/uplc/test_data/conformance/v2/example/churchSucc/churchSucc.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/example/churchSucc/churchSucc.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/example/churchSucc/churchSucc.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/churchSucc/churchSucc.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/example/churchSucc/churchSucc.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/churchSucc/churchSucc.uplc.expected b/crates/uplc/test_data/conformance/v2/example/churchSucc/churchSucc.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/churchSucc/churchSucc.uplc.expected rename to crates/uplc/test_data/conformance/v2/example/churchSucc/churchSucc.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/churchZero/churchZero.uplc b/crates/uplc/test_data/conformance/v2/example/churchZero/churchZero.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/churchZero/churchZero.uplc rename to crates/uplc/test_data/conformance/v2/example/churchZero/churchZero.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/example/churchZero/churchZero.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/example/churchZero/churchZero.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/churchZero/churchZero.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/example/churchZero/churchZero.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/churchZero/churchZero.uplc.expected b/crates/uplc/test_data/conformance/v2/example/churchZero/churchZero.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/churchZero/churchZero.uplc.expected rename to crates/uplc/test_data/conformance/v2/example/churchZero/churchZero.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/even2/even2.uplc b/crates/uplc/test_data/conformance/v2/example/even2/even2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/even2/even2.uplc rename to crates/uplc/test_data/conformance/v2/example/even2/even2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/example/even2/even2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/example/even2/even2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/even2/even2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/example/even2/even2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/even2/even2.uplc.expected b/crates/uplc/test_data/conformance/v2/example/even2/even2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/even2/even2.uplc.expected rename to crates/uplc/test_data/conformance/v2/example/even2/even2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/even3/even3.uplc b/crates/uplc/test_data/conformance/v2/example/even3/even3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/even3/even3.uplc rename to crates/uplc/test_data/conformance/v2/example/even3/even3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/example/even3/even3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/example/even3/even3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/even3/even3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/example/even3/even3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/even3/even3.uplc.expected b/crates/uplc/test_data/conformance/v2/example/even3/even3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/even3/even3.uplc.expected rename to crates/uplc/test_data/conformance/v2/example/even3/even3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/evenList/evenList.uplc b/crates/uplc/test_data/conformance/v2/example/evenList/evenList.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/evenList/evenList.uplc rename to crates/uplc/test_data/conformance/v2/example/evenList/evenList.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/example/evenList/evenList.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/example/evenList/evenList.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/evenList/evenList.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/example/evenList/evenList.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/evenList/evenList.uplc.expected b/crates/uplc/test_data/conformance/v2/example/evenList/evenList.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/evenList/evenList.uplc.expected rename to crates/uplc/test_data/conformance/v2/example/evenList/evenList.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/factorial/factorial.uplc b/crates/uplc/test_data/conformance/v2/example/factorial/factorial.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/factorial/factorial.uplc rename to crates/uplc/test_data/conformance/v2/example/factorial/factorial.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/example/factorial/factorial.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/example/factorial/factorial.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/factorial/factorial.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/example/factorial/factorial.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/factorial/factorial.uplc.expected b/crates/uplc/test_data/conformance/v2/example/factorial/factorial.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/factorial/factorial.uplc.expected rename to crates/uplc/test_data/conformance/v2/example/factorial/factorial.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/fibonacci/fibonacci.uplc b/crates/uplc/test_data/conformance/v2/example/fibonacci/fibonacci.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/fibonacci/fibonacci.uplc rename to crates/uplc/test_data/conformance/v2/example/fibonacci/fibonacci.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/example/fibonacci/fibonacci.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/example/fibonacci/fibonacci.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/fibonacci/fibonacci.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/example/fibonacci/fibonacci.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/fibonacci/fibonacci.uplc.expected b/crates/uplc/test_data/conformance/v2/example/fibonacci/fibonacci.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/fibonacci/fibonacci.uplc.expected rename to crates/uplc/test_data/conformance/v2/example/fibonacci/fibonacci.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/force-lam/force-lam.uplc b/crates/uplc/test_data/conformance/v2/example/force-lam/force-lam.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/force-lam/force-lam.uplc rename to crates/uplc/test_data/conformance/v2/example/force-lam/force-lam.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/example/force-lam/force-lam.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/example/force-lam/force-lam.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/force-lam/force-lam.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/example/force-lam/force-lam.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/force-lam/force-lam.uplc.expected b/crates/uplc/test_data/conformance/v2/example/force-lam/force-lam.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/force-lam/force-lam.uplc.expected rename to crates/uplc/test_data/conformance/v2/example/force-lam/force-lam.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/overapplication/overapplication.uplc b/crates/uplc/test_data/conformance/v2/example/overapplication/overapplication.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/overapplication/overapplication.uplc rename to crates/uplc/test_data/conformance/v2/example/overapplication/overapplication.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/example/overapplication/overapplication.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/example/overapplication/overapplication.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/overapplication/overapplication.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/example/overapplication/overapplication.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/overapplication/overapplication.uplc.expected b/crates/uplc/test_data/conformance/v2/example/overapplication/overapplication.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/overapplication/overapplication.uplc.expected rename to crates/uplc/test_data/conformance/v2/example/overapplication/overapplication.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/succInteger/succInteger.uplc b/crates/uplc/test_data/conformance/v2/example/succInteger/succInteger.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/succInteger/succInteger.uplc rename to crates/uplc/test_data/conformance/v2/example/succInteger/succInteger.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/example/succInteger/succInteger.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/example/succInteger/succInteger.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/succInteger/succInteger.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/example/succInteger/succInteger.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/example/succInteger/succInteger.uplc.expected b/crates/uplc/test_data/conformance/v2/example/succInteger/succInteger.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/example/succInteger/succInteger.uplc.expected rename to crates/uplc/test_data/conformance/v2/example/succInteger/succInteger.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-1/app-1.uplc b/crates/uplc/test_data/conformance/v2/term/app/app-1/app-1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-1/app-1.uplc rename to crates/uplc/test_data/conformance/v2/term/app/app-1/app-1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-1/app-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/app/app-1/app-1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-1/app-1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/app/app-1/app-1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-1/app-1.uplc.expected b/crates/uplc/test_data/conformance/v2/term/app/app-1/app-1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-1/app-1.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/app/app-1/app-1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-2/app-2.uplc b/crates/uplc/test_data/conformance/v2/term/app/app-2/app-2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-2/app-2.uplc rename to crates/uplc/test_data/conformance/v2/term/app/app-2/app-2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-2/app-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/app/app-2/app-2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-2/app-2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/app/app-2/app-2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-2/app-2.uplc.expected b/crates/uplc/test_data/conformance/v2/term/app/app-2/app-2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-2/app-2.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/app/app-2/app-2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-3/app-3.uplc b/crates/uplc/test_data/conformance/v2/term/app/app-3/app-3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-3/app-3.uplc rename to crates/uplc/test_data/conformance/v2/term/app/app-3/app-3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-3/app-3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/app/app-3/app-3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-3/app-3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/app/app-3/app-3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-3/app-3.uplc.expected b/crates/uplc/test_data/conformance/v2/term/app/app-3/app-3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-3/app-3.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/app/app-3/app-3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-4/app-4.uplc b/crates/uplc/test_data/conformance/v2/term/app/app-4/app-4.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-4/app-4.uplc rename to crates/uplc/test_data/conformance/v2/term/app/app-4/app-4.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-4/app-4.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/app/app-4/app-4.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-4/app-4.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/app/app-4/app-4.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-4/app-4.uplc.expected b/crates/uplc/test_data/conformance/v2/term/app/app-4/app-4.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-4/app-4.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/app/app-4/app-4.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-5/app-5.uplc b/crates/uplc/test_data/conformance/v2/term/app/app-5/app-5.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-5/app-5.uplc rename to crates/uplc/test_data/conformance/v2/term/app/app-5/app-5.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-5/app-5.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/app/app-5/app-5.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-5/app-5.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/app/app-5/app-5.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-5/app-5.uplc.expected b/crates/uplc/test_data/conformance/v2/term/app/app-5/app-5.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-5/app-5.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/app/app-5/app-5.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-6/app-6.uplc b/crates/uplc/test_data/conformance/v2/term/app/app-6/app-6.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-6/app-6.uplc rename to crates/uplc/test_data/conformance/v2/term/app/app-6/app-6.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-6/app-6.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/app/app-6/app-6.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-6/app-6.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/app/app-6/app-6.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-6/app-6.uplc.expected b/crates/uplc/test_data/conformance/v2/term/app/app-6/app-6.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-6/app-6.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/app/app-6/app-6.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-7/app-7.uplc b/crates/uplc/test_data/conformance/v2/term/app/app-7/app-7.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-7/app-7.uplc rename to crates/uplc/test_data/conformance/v2/term/app/app-7/app-7.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-7/app-7.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/app/app-7/app-7.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-7/app-7.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/app/app-7/app-7.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-7/app-7.uplc.expected b/crates/uplc/test_data/conformance/v2/term/app/app-7/app-7.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-7/app-7.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/app/app-7/app-7.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-8/app-8.uplc b/crates/uplc/test_data/conformance/v2/term/app/app-8/app-8.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-8/app-8.uplc rename to crates/uplc/test_data/conformance/v2/term/app/app-8/app-8.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-8/app-8.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/app/app-8/app-8.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-8/app-8.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/app/app-8/app-8.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-8/app-8.uplc.expected b/crates/uplc/test_data/conformance/v2/term/app/app-8/app-8.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-8/app-8.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/app/app-8/app-8.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-9/app-9.uplc b/crates/uplc/test_data/conformance/v2/term/app/app-9/app-9.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-9/app-9.uplc rename to crates/uplc/test_data/conformance/v2/term/app/app-9/app-9.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-9/app-9.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/app/app-9/app-9.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-9/app-9.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/app/app-9/app-9.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/app/app-9/app-9.uplc.expected b/crates/uplc/test_data/conformance/v2/term/app/app-9/app-9.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/app/app-9/app-9.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/app/app-9/app-9.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/argExpected/argExpected.uplc b/crates/uplc/test_data/conformance/v2/term/argExpected/argExpected.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/argExpected/argExpected.uplc rename to crates/uplc/test_data/conformance/v2/term/argExpected/argExpected.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/argExpected/argExpected.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/argExpected/argExpected.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/argExpected/argExpected.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/argExpected/argExpected.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/argExpected/argExpected.uplc.expected b/crates/uplc/test_data/conformance/v2/term/argExpected/argExpected.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/argExpected/argExpected.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/argExpected/argExpected.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-1/case-1.uplc b/crates/uplc/test_data/conformance/v2/term/case/case-1/case-1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-1/case-1.uplc rename to crates/uplc/test_data/conformance/v2/term/case/case-1/case-1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-1/case-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/case/case-1/case-1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-1/case-1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/case/case-1/case-1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-1/case-1.uplc.expected b/crates/uplc/test_data/conformance/v2/term/case/case-1/case-1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-1/case-1.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/case/case-1/case-1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-2/case-2.uplc b/crates/uplc/test_data/conformance/v2/term/case/case-2/case-2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-2/case-2.uplc rename to crates/uplc/test_data/conformance/v2/term/case/case-2/case-2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-2/case-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/case/case-2/case-2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-2/case-2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/case/case-2/case-2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-2/case-2.uplc.expected b/crates/uplc/test_data/conformance/v2/term/case/case-2/case-2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-2/case-2.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/case/case-2/case-2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-3/case-3.uplc b/crates/uplc/test_data/conformance/v2/term/case/case-3/case-3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-3/case-3.uplc rename to crates/uplc/test_data/conformance/v2/term/case/case-3/case-3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-3/case-3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/case/case-3/case-3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-3/case-3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/case/case-3/case-3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-3/case-3.uplc.expected b/crates/uplc/test_data/conformance/v2/term/case/case-3/case-3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-3/case-3.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/case/case-3/case-3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-4/case-4.uplc b/crates/uplc/test_data/conformance/v2/term/case/case-4/case-4.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-4/case-4.uplc rename to crates/uplc/test_data/conformance/v2/term/case/case-4/case-4.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-4/case-4.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/case/case-4/case-4.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-4/case-4.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/case/case-4/case-4.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-4/case-4.uplc.expected b/crates/uplc/test_data/conformance/v2/term/case/case-4/case-4.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-4/case-4.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/case/case-4/case-4.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-5/case-5.uplc b/crates/uplc/test_data/conformance/v2/term/case/case-5/case-5.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-5/case-5.uplc rename to crates/uplc/test_data/conformance/v2/term/case/case-5/case-5.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-5/case-5.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/case/case-5/case-5.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-5/case-5.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/case/case-5/case-5.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-5/case-5.uplc.expected b/crates/uplc/test_data/conformance/v2/term/case/case-5/case-5.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-5/case-5.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/case/case-5/case-5.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-6/case-6.uplc b/crates/uplc/test_data/conformance/v2/term/case/case-6/case-6.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-6/case-6.uplc rename to crates/uplc/test_data/conformance/v2/term/case/case-6/case-6.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-6/case-6.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/case/case-6/case-6.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-6/case-6.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/case/case-6/case-6.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-6/case-6.uplc.expected b/crates/uplc/test_data/conformance/v2/term/case/case-6/case-6.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-6/case-6.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/case/case-6/case-6.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-8/case-8.uplc b/crates/uplc/test_data/conformance/v2/term/case/case-8/case-8.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-8/case-8.uplc rename to crates/uplc/test_data/conformance/v2/term/case/case-8/case-8.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-8/case-8.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/case/case-8/case-8.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-8/case-8.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/case/case-8/case-8.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-8/case-8.uplc.expected b/crates/uplc/test_data/conformance/v2/term/case/case-8/case-8.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-8/case-8.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/case/case-8/case-8.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-9/case-9.uplc b/crates/uplc/test_data/conformance/v2/term/case/case-9/case-9.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-9/case-9.uplc rename to crates/uplc/test_data/conformance/v2/term/case/case-9/case-9.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-9/case-9.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/case/case-9/case-9.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-9/case-9.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/case/case-9/case-9.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/case/case-9/case-9.uplc.expected b/crates/uplc/test_data/conformance/v2/term/case/case-9/case-9.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/case/case-9/case-9.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/case/case-9/case-9.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/closure/closure.uplc b/crates/uplc/test_data/conformance/v2/term/closure/closure.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/closure/closure.uplc rename to crates/uplc/test_data/conformance/v2/term/closure/closure.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/closure/closure.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/closure/closure.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/closure/closure.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/closure/closure.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/closure/closure.uplc.expected b/crates/uplc/test_data/conformance/v2/term/closure/closure.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/closure/closure.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/closure/closure.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/constr/constr-1/constr-1.uplc b/crates/uplc/test_data/conformance/v2/term/constr/constr-1/constr-1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/constr/constr-1/constr-1.uplc rename to crates/uplc/test_data/conformance/v2/term/constr/constr-1/constr-1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/constr/constr-1/constr-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/constr/constr-1/constr-1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/constr/constr-1/constr-1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/constr/constr-1/constr-1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/constr/constr-1/constr-1.uplc.expected b/crates/uplc/test_data/conformance/v2/term/constr/constr-1/constr-1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/constr/constr-1/constr-1.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/constr/constr-1/constr-1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/constr/constr-2/constr-2.uplc b/crates/uplc/test_data/conformance/v2/term/constr/constr-2/constr-2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/constr/constr-2/constr-2.uplc rename to crates/uplc/test_data/conformance/v2/term/constr/constr-2/constr-2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/constr/constr-2/constr-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/constr/constr-2/constr-2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/constr/constr-2/constr-2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/constr/constr-2/constr-2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/constr/constr-2/constr-2.uplc.expected b/crates/uplc/test_data/conformance/v2/term/constr/constr-2/constr-2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/constr/constr-2/constr-2.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/constr/constr-2/constr-2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/constr/constr-3/constr-3.uplc b/crates/uplc/test_data/conformance/v2/term/constr/constr-3/constr-3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/constr/constr-3/constr-3.uplc rename to crates/uplc/test_data/conformance/v2/term/constr/constr-3/constr-3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/constr/constr-3/constr-3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/constr/constr-3/constr-3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/constr/constr-3/constr-3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/constr/constr-3/constr-3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/constr/constr-3/constr-3.uplc.expected b/crates/uplc/test_data/conformance/v2/term/constr/constr-3/constr-3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/constr/constr-3/constr-3.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/constr/constr-3/constr-3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/constr/constr-4/constr-4.uplc b/crates/uplc/test_data/conformance/v2/term/constr/constr-4/constr-4.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/constr/constr-4/constr-4.uplc rename to crates/uplc/test_data/conformance/v2/term/constr/constr-4/constr-4.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/constr/constr-4/constr-4.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/constr/constr-4/constr-4.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/constr/constr-4/constr-4.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/constr/constr-4/constr-4.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/constr/constr-4/constr-4.uplc.expected b/crates/uplc/test_data/conformance/v2/term/constr/constr-4/constr-4.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/constr/constr-4/constr-4.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/constr/constr-4/constr-4.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/constr/constr-5/constr-5.uplc b/crates/uplc/test_data/conformance/v2/term/constr/constr-5/constr-5.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/constr/constr-5/constr-5.uplc rename to crates/uplc/test_data/conformance/v2/term/constr/constr-5/constr-5.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/constr/constr-5/constr-5.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/constr/constr-5/constr-5.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/constr/constr-5/constr-5.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/constr/constr-5/constr-5.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/constr/constr-5/constr-5.uplc.expected b/crates/uplc/test_data/conformance/v2/term/constr/constr-5/constr-5.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/constr/constr-5/constr-5.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/constr/constr-5/constr-5.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/delay/delay-error-1/delay-error-1.uplc b/crates/uplc/test_data/conformance/v2/term/delay/delay-error-1/delay-error-1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/delay/delay-error-1/delay-error-1.uplc rename to crates/uplc/test_data/conformance/v2/term/delay/delay-error-1/delay-error-1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/delay/delay-error-1/delay-error-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/delay/delay-error-1/delay-error-1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/delay/delay-error-1/delay-error-1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/delay/delay-error-1/delay-error-1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/delay/delay-error-1/delay-error-1.uplc.expected b/crates/uplc/test_data/conformance/v2/term/delay/delay-error-1/delay-error-1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/delay/delay-error-1/delay-error-1.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/delay/delay-error-1/delay-error-1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/delay/delay-error-2/delay-error-2.uplc b/crates/uplc/test_data/conformance/v2/term/delay/delay-error-2/delay-error-2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/delay/delay-error-2/delay-error-2.uplc rename to crates/uplc/test_data/conformance/v2/term/delay/delay-error-2/delay-error-2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/delay/delay-error-2/delay-error-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/delay/delay-error-2/delay-error-2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/delay/delay-error-2/delay-error-2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/delay/delay-error-2/delay-error-2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/delay/delay-error-2/delay-error-2.uplc.expected b/crates/uplc/test_data/conformance/v2/term/delay/delay-error-2/delay-error-2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/delay/delay-error-2/delay-error-2.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/delay/delay-error-2/delay-error-2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/delay/delay-lam/delay-lam.uplc b/crates/uplc/test_data/conformance/v2/term/delay/delay-lam/delay-lam.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/delay/delay-lam/delay-lam.uplc rename to crates/uplc/test_data/conformance/v2/term/delay/delay-lam/delay-lam.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/delay/delay-lam/delay-lam.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/delay/delay-lam/delay-lam.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/delay/delay-lam/delay-lam.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/delay/delay-lam/delay-lam.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/delay/delay-lam/delay-lam.uplc.expected b/crates/uplc/test_data/conformance/v2/term/delay/delay-lam/delay-lam.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/delay/delay-lam/delay-lam.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/delay/delay-lam/delay-lam.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/force/force-1/force-1.uplc b/crates/uplc/test_data/conformance/v2/term/force/force-1/force-1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/force/force-1/force-1.uplc rename to crates/uplc/test_data/conformance/v2/term/force/force-1/force-1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/force/force-1/force-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/force/force-1/force-1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/force/force-1/force-1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/force/force-1/force-1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/force/force-1/force-1.uplc.expected b/crates/uplc/test_data/conformance/v2/term/force/force-1/force-1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/force/force-1/force-1.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/force/force-1/force-1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/force/force-2/force-2.uplc b/crates/uplc/test_data/conformance/v2/term/force/force-2/force-2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/force/force-2/force-2.uplc rename to crates/uplc/test_data/conformance/v2/term/force/force-2/force-2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/force/force-2/force-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/force/force-2/force-2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/force/force-2/force-2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/force/force-2/force-2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/force/force-2/force-2.uplc.expected b/crates/uplc/test_data/conformance/v2/term/force/force-2/force-2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/force/force-2/force-2.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/force/force-2/force-2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/force/force-3/force-3.uplc b/crates/uplc/test_data/conformance/v2/term/force/force-3/force-3.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/force/force-3/force-3.uplc rename to crates/uplc/test_data/conformance/v2/term/force/force-3/force-3.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/force/force-3/force-3.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/force/force-3/force-3.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/force/force-3/force-3.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/force/force-3/force-3.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/force/force-3/force-3.uplc.expected b/crates/uplc/test_data/conformance/v2/term/force/force-3/force-3.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/force/force-3/force-3.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/force/force-3/force-3.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/force/force-4/force-4.uplc b/crates/uplc/test_data/conformance/v2/term/force/force-4/force-4.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/force/force-4/force-4.uplc rename to crates/uplc/test_data/conformance/v2/term/force/force-4/force-4.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/force/force-4/force-4.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/force/force-4/force-4.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/force/force-4/force-4.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/force/force-4/force-4.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/force/force-4/force-4.uplc.expected b/crates/uplc/test_data/conformance/v2/term/force/force-4/force-4.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/force/force-4/force-4.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/force/force-4/force-4.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/lam/lam-1/lam-1.uplc b/crates/uplc/test_data/conformance/v2/term/lam/lam-1/lam-1.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/lam/lam-1/lam-1.uplc rename to crates/uplc/test_data/conformance/v2/term/lam/lam-1/lam-1.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/lam/lam-1/lam-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/lam/lam-1/lam-1.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/lam/lam-1/lam-1.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/lam/lam-1/lam-1.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/lam/lam-1/lam-1.uplc.expected b/crates/uplc/test_data/conformance/v2/term/lam/lam-1/lam-1.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/lam/lam-1/lam-1.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/lam/lam-1/lam-1.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/lam/lam-2/lam-2.uplc b/crates/uplc/test_data/conformance/v2/term/lam/lam-2/lam-2.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/lam/lam-2/lam-2.uplc rename to crates/uplc/test_data/conformance/v2/term/lam/lam-2/lam-2.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/lam/lam-2/lam-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/lam/lam-2/lam-2.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/lam/lam-2/lam-2.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/lam/lam-2/lam-2.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/lam/lam-2/lam-2.uplc.expected b/crates/uplc/test_data/conformance/v2/term/lam/lam-2/lam-2.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/lam/lam-2/lam-2.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/lam/lam-2/lam-2.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/nonFunctionalApplication/nonFunctionalApplication.uplc b/crates/uplc/test_data/conformance/v2/term/nonFunctionalApplication/nonFunctionalApplication.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/nonFunctionalApplication/nonFunctionalApplication.uplc rename to crates/uplc/test_data/conformance/v2/term/nonFunctionalApplication/nonFunctionalApplication.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/nonFunctionalApplication/nonFunctionalApplication.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/nonFunctionalApplication/nonFunctionalApplication.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/nonFunctionalApplication/nonFunctionalApplication.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/nonFunctionalApplication/nonFunctionalApplication.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/nonFunctionalApplication/nonFunctionalApplication.uplc.expected b/crates/uplc/test_data/conformance/v2/term/nonFunctionalApplication/nonFunctionalApplication.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/nonFunctionalApplication/nonFunctionalApplication.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/nonFunctionalApplication/nonFunctionalApplication.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/unlifting-sat/unlifting-sat.uplc b/crates/uplc/test_data/conformance/v2/term/unlifting-sat/unlifting-sat.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/unlifting-sat/unlifting-sat.uplc rename to crates/uplc/test_data/conformance/v2/term/unlifting-sat/unlifting-sat.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/unlifting-sat/unlifting-sat.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/unlifting-sat/unlifting-sat.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/unlifting-sat/unlifting-sat.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/unlifting-sat/unlifting-sat.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/unlifting-sat/unlifting-sat.uplc.expected b/crates/uplc/test_data/conformance/v2/term/unlifting-sat/unlifting-sat.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/unlifting-sat/unlifting-sat.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/unlifting-sat/unlifting-sat.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/unlifting-unsat/unlifting-unsat.uplc b/crates/uplc/test_data/conformance/v2/term/unlifting-unsat/unlifting-unsat.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/unlifting-unsat/unlifting-unsat.uplc rename to crates/uplc/test_data/conformance/v2/term/unlifting-unsat/unlifting-unsat.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/unlifting-unsat/unlifting-unsat.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/unlifting-unsat/unlifting-unsat.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/unlifting-unsat/unlifting-unsat.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/unlifting-unsat/unlifting-unsat.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/unlifting-unsat/unlifting-unsat.uplc.expected b/crates/uplc/test_data/conformance/v2/term/unlifting-unsat/unlifting-unsat.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/unlifting-unsat/unlifting-unsat.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/unlifting-unsat/unlifting-unsat.uplc.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/var/var.uplc b/crates/uplc/test_data/conformance/v2/term/var/var.uplc similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/var/var.uplc rename to crates/uplc/test_data/conformance/v2/term/var/var.uplc diff --git a/crates/uplc/test_data/conformance/evaluation/term/var/var.uplc.budget.expected b/crates/uplc/test_data/conformance/v2/term/var/var.uplc.budget.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/var/var.uplc.budget.expected rename to crates/uplc/test_data/conformance/v2/term/var/var.uplc.budget.expected diff --git a/crates/uplc/test_data/conformance/evaluation/term/var/var.uplc.expected b/crates/uplc/test_data/conformance/v2/term/var/var.uplc.expected similarity index 100% rename from crates/uplc/test_data/conformance/evaluation/term/var/var.uplc.expected rename to crates/uplc/test_data/conformance/v2/term/var/var.uplc.expected diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-syntax-1/bad-syntax-1.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-syntax-1/bad-syntax-1.uplc new file mode 100644 index 00000000..0ed6ae36 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-syntax-1/bad-syntax-1.uplc @@ -0,0 +1,4 @@ +-- Missing the 0x prefix. +(program 0.0.0 +(con bls12_381_G1_element c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-syntax-1/bad-syntax-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-syntax-1/bad-syntax-1.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-syntax-1/bad-syntax-1.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-syntax-1/bad-syntax-1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-syntax-1/bad-syntax-1.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-syntax-1/bad-syntax-1.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-syntax-2/bad-syntax-2.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-syntax-2/bad-syntax-2.uplc new file mode 100644 index 00000000..8f780571 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-syntax-2/bad-syntax-2.uplc @@ -0,0 +1,4 @@ +-- This has # instead of 0x. +(program 0.0.0 +(con bls12_381_G1_element #c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-syntax-2/bad-syntax-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-syntax-2/bad-syntax-2.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-syntax-2/bad-syntax-2.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-syntax-2/bad-syntax-2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-syntax-2/bad-syntax-2.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-syntax-2/bad-syntax-2.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-1/bad-zero-1.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-1/bad-zero-1.uplc new file mode 100644 index 00000000..0bd57991 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-1/bad-zero-1.uplc @@ -0,0 +1,4 @@ +-- A bad encoding: this has the negative bit set, but nothing else. +(program 0.0.0 +(con bls12_381_G1_element 0x400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-1/bad-zero-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-1/bad-zero-1.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-1/bad-zero-1.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-1/bad-zero-1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-1/bad-zero-1.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-1/bad-zero-1.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-2/bad-zero-2.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-2/bad-zero-2.uplc new file mode 100644 index 00000000..7809efb2 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-2/bad-zero-2.uplc @@ -0,0 +1,4 @@ +-- Almost a correct representation of the zero point, but with the negation bit set. +(program 0.0.0 +(con bls12_381_G1_element 0xe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-2/bad-zero-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-2/bad-zero-2.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-2/bad-zero-2.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-2/bad-zero-2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-2/bad-zero-2.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-2/bad-zero-2.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-3/bad-zero-3.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-3/bad-zero-3.uplc new file mode 100644 index 00000000..b68f07f0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-3/bad-zero-3.uplc @@ -0,0 +1,4 @@ +-- The zero point, but with a random bit set in the body (should all be 0) +(program 0.0.0 +(con bls12_381_G1_element 0xc00000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-3/bad-zero-3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-3/bad-zero-3.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-3/bad-zero-3.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-3/bad-zero-3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-3/bad-zero-3.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/bad-zero-3/bad-zero-3.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/off-curve/off-curve.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/off-curve/off-curve.uplc new file mode 100644 index 00000000..9a2cea0c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/off-curve/off-curve.uplc @@ -0,0 +1,4 @@ +-- This encodes a field element which isn't the x-coordinate of any point on the curve (no square root). +(program 0.0.0 +(con bls12_381_G1_element 0xa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/off-curve/off-curve.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/off-curve/off-curve.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/off-curve/off-curve.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/off-curve/off-curve.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/off-curve/off-curve.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/off-curve/off-curve.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc new file mode 100644 index 00000000..8a18eac5 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc @@ -0,0 +1,4 @@ +-- This is a valid encoding with the sign bit clear. +(program 0.0.0 +(con bls12_381_G1_element 0x81e9a0c68985059bd25a5ef05b351ca22f7d7c19e37928583ae12a1f4939440ff754cfd85b23df4a54f66c7089db6deb) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected new file mode 100644 index 00000000..d66818b0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected @@ -0,0 +1,7 @@ +(program + 0.0.0 + (con + bls12_381_G1_element + 0x81e9a0c68985059bd25a5ef05b351ca22f7d7c19e37928583ae12a1f4939440ff754cfd85b23df4a54f66c7089db6deb + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc new file mode 100644 index 00000000..b62e1f56 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc @@ -0,0 +1,4 @@ +-- This is a valid encoding with the sign bit set (obtained by hashing 0x0102030405 to G1) +(program 0.0.0 +(con bls12_381_G1_element 0xa1e9a0c68985059bd25a5ef05b351ca22f7d7c19e37928583ae12a1f4939440ff754cfd85b23df4a54f66c7089db6deb) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc.expected new file mode 100644 index 00000000..207dc294 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc.expected @@ -0,0 +1,7 @@ +(program + 0.0.0 + (con + bls12_381_G1_element + 0xa1e9a0c68985059bd25a5ef05b351ca22f7d7c19e37928583ae12a1f4939440ff754cfd85b23df4a54f66c7089db6deb + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc new file mode 100644 index 00000000..2c9a0a36 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc @@ -0,0 +1,5 @@ +-- This is a valid serialisation of a point on G1 (obtained by hashing 0x0102030405), +-- but we only accept compressed points. +(program 0.0.0 +(con bls12_381_G1_element 0x01e9a0c68985059bd25a5ef05b351ca22f7d7c19e37928583ae12a1f4939440ff754cfd85b23df4a54f66c7089db6deb12ae8470d881eb628dfcf4bb083fb8a6968d907a0c265f6d06e04b05a19418d395d3e0c115430f88e7156822904ef5bf) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/out-of-group/out-of-group.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/out-of-group/out-of-group.uplc new file mode 100644 index 00000000..9c5eee17 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/out-of-group/out-of-group.uplc @@ -0,0 +1,4 @@ +-- This is a valid point on the E1 curve, but it's not in the G1 subgroup. +(program 0.0.0 +(con bls12_381_G1_element 0xa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/out-of-group/out-of-group.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/out-of-group/out-of-group.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/out-of-group/out-of-group.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/out-of-group/out-of-group.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/out-of-group/out-of-group.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/out-of-group/out-of-group.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/too-long/too-long.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/too-long/too-long.uplc new file mode 100644 index 00000000..f97781c7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/too-long/too-long.uplc @@ -0,0 +1,4 @@ +-- The compressed encoding of the zero element of G1, but with an extra zero byte at the end. +(program 0.0.0 +(con bls12_381_G1_element 0xc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/too-long/too-long.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/too-long/too-long.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/too-long/too-long.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/too-long/too-long.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/too-long/too-long.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/too-long/too-long.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/too-short/too-short.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/too-short/too-short.uplc new file mode 100644 index 00000000..df72313e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/too-short/too-short.uplc @@ -0,0 +1,4 @@ +-- The zero element of G1, but one byte short +(program 0.0.0 +(con bls12_381_G1_element 0xc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/too-short/too-short.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/too-short/too-short.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/too-short/too-short.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/too-short/too-short.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/too-short/too-short.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/too-short/too-short.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/zero/zero.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/zero/zero.uplc new file mode 100644 index 00000000..78eee628 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/zero/zero.uplc @@ -0,0 +1,4 @@ +-- A correct compressed encoding of the zero element of G1. +(program 0.0.0 +(con bls12_381_G1_element 0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/zero/zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/zero/zero.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/zero/zero.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/zero/zero.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/zero/zero.uplc.expected new file mode 100644 index 00000000..63a548b8 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G1/zero/zero.uplc.expected @@ -0,0 +1,7 @@ +(program + 0.0.0 + (con + bls12_381_G1_element + 0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-syntax-1/bad-syntax-1.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-syntax-1/bad-syntax-1.uplc new file mode 100644 index 00000000..22406d89 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-syntax-1/bad-syntax-1.uplc @@ -0,0 +1,4 @@ +-- Missing the 0x prefix. +(program 0.0.0 +(con bls12_381_G2_element c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-syntax-1/bad-syntax-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-syntax-1/bad-syntax-1.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-syntax-1/bad-syntax-1.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-syntax-1/bad-syntax-1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-syntax-1/bad-syntax-1.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-syntax-1/bad-syntax-1.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-syntax-2/bad-syntax-2.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-syntax-2/bad-syntax-2.uplc new file mode 100644 index 00000000..8f95d3ee --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-syntax-2/bad-syntax-2.uplc @@ -0,0 +1,4 @@ +-- This has # instead of 0x. +(program 0.0.0 +(con bls12_381_G2_element #c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-syntax-2/bad-syntax-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-syntax-2/bad-syntax-2.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-syntax-2/bad-syntax-2.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-syntax-2/bad-syntax-2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-syntax-2/bad-syntax-2.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-syntax-2/bad-syntax-2.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-1/bad-zero-1.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-1/bad-zero-1.uplc new file mode 100644 index 00000000..220457d6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-1/bad-zero-1.uplc @@ -0,0 +1,4 @@ +-- A bad encoding: this has the negative bit set, but nothing else. +(program 0.0.0 +(con bls12_381_G2_element 0x400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-1/bad-zero-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-1/bad-zero-1.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-1/bad-zero-1.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-1/bad-zero-1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-1/bad-zero-1.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-1/bad-zero-1.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-2/bad-zero-2.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-2/bad-zero-2.uplc new file mode 100644 index 00000000..c8907a22 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-2/bad-zero-2.uplc @@ -0,0 +1,4 @@ +-- Almost a correct represntation of the zero point, but with the negation bit set. +(program 0.0.0 +(con bls12_381_G2_element 0xe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-2/bad-zero-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-2/bad-zero-2.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-2/bad-zero-2.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-2/bad-zero-2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-2/bad-zero-2.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-2/bad-zero-2.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-3/bad-zero-3.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-3/bad-zero-3.uplc new file mode 100644 index 00000000..abf4ad4c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-3/bad-zero-3.uplc @@ -0,0 +1,4 @@ +-- The zero point, but with a random bit set in the body (should all be 0) +(program 0.0.0 +(con bls12_381_G2_element 0xc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-3/bad-zero-3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-3/bad-zero-3.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-3/bad-zero-3.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-3/bad-zero-3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-3/bad-zero-3.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/bad-zero-3/bad-zero-3.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/off-curve/off-curve.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/off-curve/off-curve.uplc new file mode 100644 index 00000000..749f56f1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/off-curve/off-curve.uplc @@ -0,0 +1,4 @@ +-- This encodes a field element which isn't the x-coordinate of any point on the curve (no square root). +(program 0.0.0 +(con bls12_381_G2_element 0xa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/off-curve/off-curve.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/off-curve/off-curve.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/off-curve/off-curve.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/off-curve/off-curve.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/off-curve/off-curve.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/off-curve/off-curve.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc new file mode 100644 index 00000000..1cd98b2a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc @@ -0,0 +1,4 @@ +-- This is a valid encoding with the sign bit clear. +(program 0.0.0 +(con bls12_381_G2_element 0x88138ebea766d4d1aa64dd3b5826244c32ea3fe9351f9c8d584203716dae151d14bb5d06e245c24877955c79287682ba082d077bbb2afdb1ad1d48d18e2f0c56b001bce207801adfa9fd451fc59d56f0433b02f921ba5a272c58c06536291d07) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected new file mode 100644 index 00000000..ca926b8f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected @@ -0,0 +1,7 @@ +(program + 0.0.0 + (con + bls12_381_G2_element + 0x88138ebea766d4d1aa64dd3b5826244c32ea3fe9351f9c8d584203716dae151d14bb5d06e245c24877955c79287682ba082d077bbb2afdb1ad1d48d18e2f0c56b001bce207801adfa9fd451fc59d56f0433b02f921ba5a272c58c06536291d07 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc new file mode 100644 index 00000000..fbcc5915 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc @@ -0,0 +1,4 @@ +-- This is a valid encoding with the sign bit set (obtained by hashing 0x0102030405 to G2) +(program 0.0.0 +(con bls12_381_G2_element 0xa8138ebea766d4d1aa64dd3b5826244c32ea3fe9351f9c8d584203716dae151d14bb5d06e245c24877955c79287682ba082d077bbb2afdb1ad1d48d18e2f0c56b001bce207801adfa9fd451fc59d56f0433b02f921ba5a272c58c06536291d07) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc.expected new file mode 100644 index 00000000..99a86974 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc.expected @@ -0,0 +1,7 @@ +(program + 0.0.0 + (con + bls12_381_G2_element + 0xa8138ebea766d4d1aa64dd3b5826244c32ea3fe9351f9c8d584203716dae151d14bb5d06e245c24877955c79287682ba082d077bbb2afdb1ad1d48d18e2f0c56b001bce207801adfa9fd451fc59d56f0433b02f921ba5a272c58c06536291d07 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc new file mode 100644 index 00000000..400d3bfa --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc @@ -0,0 +1,5 @@ +-- This is a valid serialisation of a point on G2 (obtained by hashing 0x0102030405), +-- but we only accept compressed points. +(program 0.0.0 +(con bls12_381_G2_element 0x08138ebea766d4d1aa64dd3b5826244c32ea3fe9351f9c8d584203716dae151d14bb5d06e245c24877955c79287682ba082d077bbb2afdb1ad1d48d18e2f0c56b001bce207801adfa9fd451fc59d56f0433b02f921ba5a272c58c06536291d071676b275e27060b26dd91aac0a1feb56d1c1de7c323f486e48d54eae0c3c8f4caa45faad589c5d180ac0830dcdb3ecd8126c9c5db86cdf7129cf18582013d267a7c2827a901ef61ab58e7ef150219441abc57671eb39009f6bb166bcbade700d) +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/out-of-group/out-of-group.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/out-of-group/out-of-group.uplc new file mode 100644 index 00000000..2bfb2df2 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/out-of-group/out-of-group.uplc @@ -0,0 +1,4 @@ +-- This is a valid point on the E2 curve, but it's not in the G2 subgroup. +(program 0.0.0 +(con bls12_381_G2_element 0xa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/out-of-group/out-of-group.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/out-of-group/out-of-group.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/out-of-group/out-of-group.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/out-of-group/out-of-group.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/out-of-group/out-of-group.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/out-of-group/out-of-group.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/too-long/too-long.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/too-long/too-long.uplc new file mode 100644 index 00000000..06802b52 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/too-long/too-long.uplc @@ -0,0 +1,4 @@ +-- The compressed encoding of the zero element of G2, but with an extra zero byte at the end. +(program 0.0.0 +(con bls12_381_G2_element 0xc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/too-long/too-long.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/too-long/too-long.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/too-long/too-long.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/too-long/too-long.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/too-long/too-long.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/too-long/too-long.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/too-short/too-short.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/too-short/too-short.uplc new file mode 100644 index 00000000..4513a488 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/too-short/too-short.uplc @@ -0,0 +1,4 @@ +-- The zero element of G2, but one byte short +(program 0.0.0 +(con bls12_381_G2_element 0xc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/too-short/too-short.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/too-short/too-short.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/too-short/too-short.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/too-short/too-short.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/too-short/too-short.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/too-short/too-short.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/zero/zero.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/zero/zero.uplc new file mode 100644 index 00000000..63a8301e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/zero/zero.uplc @@ -0,0 +1,4 @@ +-- A correct compressed encoding of the zero element of G2 +(program 0.0.0 +(con bls12_381_G2_element 0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/zero/zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/zero/zero.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/zero/zero.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/zero/zero.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/zero/zero.uplc.expected new file mode 100644 index 00000000..9b995f81 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bls12-381/G2/zero/zero.uplc.expected @@ -0,0 +1,7 @@ +(program + 0.0.0 + (con + bls12_381_G2_element + 0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bool/False/False.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bool/False/False.uplc new file mode 100644 index 00000000..dd87da54 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bool/False/False.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bool/False/False.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bool/False/False.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bool/False/False.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bool/False/False.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bool/False/False.uplc.expected new file mode 100644 index 00000000..dd87da54 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bool/False/False.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bool/True/True.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bool/True/True.uplc new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bool/True/True.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bool/True/True.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bool/True/True.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bool/True/True.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bool/True/True.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bool/True/True.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bool/True/True.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring1/bytestring1.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring1/bytestring1.uplc new file mode 100644 index 00000000..74bc6cfa --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring1/bytestring1.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con bytestring #00ff)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring1/bytestring1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring1/bytestring1.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring1/bytestring1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring1/bytestring1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring1/bytestring1.uplc.expected new file mode 100644 index 00000000..74bc6cfa --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring1/bytestring1.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bytestring #00ff)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring2/bytestring2.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring2/bytestring2.uplc new file mode 100644 index 00000000..f019b38d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring2/bytestring2.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + (con bytestring #54686543616B654973414C6965) +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring2/bytestring2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring2/bytestring2.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring2/bytestring2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring2/bytestring2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring2/bytestring2.uplc.expected new file mode 100644 index 00000000..19506cb9 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring2/bytestring2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bytestring #54686543616B654973414C6965)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring3/bytestring3.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring3/bytestring3.uplc new file mode 100644 index 00000000..8ecab7fd --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring3/bytestring3.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + (con bytestring #) +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring3/bytestring3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring3/bytestring3.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring3/bytestring3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring3/bytestring3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring3/bytestring3.uplc.expected new file mode 100644 index 00000000..5dbd4047 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring3/bytestring3.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bytestring #)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring4/bytestring4.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring4/bytestring4.uplc new file mode 100644 index 00000000..8644dc3c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring4/bytestring4.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + (con bytestring #12345) +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring4/bytestring4.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring4/bytestring4.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring4/bytestring4.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring4/bytestring4.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring4/bytestring4.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/bytestring/bytestring4/bytestring4.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataByteString/dataByteString.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataByteString/dataByteString.uplc new file mode 100644 index 00000000..475d80b9 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataByteString/dataByteString.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con data (B #0123456789ABCDEF))) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataByteString/dataByteString.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataByteString/dataByteString.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataByteString/dataByteString.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataByteString/dataByteString.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataByteString/dataByteString.uplc.expected new file mode 100644 index 00000000..b1a3896b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataByteString/dataByteString.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con data (B #0123456789abcdef))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataConstr/dataConstr.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataConstr/dataConstr.uplc new file mode 100644 index 00000000..7ad34d6b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataConstr/dataConstr.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con data (Constr 1 [I 1]))) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataConstr/dataConstr.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataConstr/dataConstr.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataConstr/dataConstr.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataConstr/dataConstr.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataConstr/dataConstr.uplc.expected new file mode 100644 index 00000000..6501b160 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataConstr/dataConstr.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con data (Constr 1 [I 1]))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataInteger/dataInteger.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataInteger/dataInteger.uplc new file mode 100644 index 00000000..8287c0d4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataInteger/dataInteger.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con data (I 12354898))) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataInteger/dataInteger.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataInteger/dataInteger.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataInteger/dataInteger.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataInteger/dataInteger.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataInteger/dataInteger.uplc.expected new file mode 100644 index 00000000..c65a4e60 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataInteger/dataInteger.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con data (I 12354898))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataList/dataList.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataList/dataList.uplc new file mode 100644 index 00000000..c63bf096 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataList/dataList.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con data (List [Constr 1 [], I 1234, B #ABCDEF]))) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataList/dataList.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataList/dataList.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataList/dataList.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataList/dataList.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataList/dataList.uplc.expected new file mode 100644 index 00000000..225ab3e4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataList/dataList.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con data (List [Constr 1 [], I 1234, B #abcdef]))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMap/dataMap.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMap/dataMap.uplc new file mode 100644 index 00000000..a651bd5e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMap/dataMap.uplc @@ -0,0 +1,6 @@ +(program 0.0.0 (con data ( + Map [ (B #0123, I 12345), + (I 789453, B #456789), + (List [I -12364689486], Constr 7 []) + ] +))) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMap/dataMap.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMap/dataMap.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMap/dataMap.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMap/dataMap.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMap/dataMap.uplc.expected new file mode 100644 index 00000000..2b6430aa --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMap/dataMap.uplc.expected @@ -0,0 +1,10 @@ +(program + 0.0.0 + (con + data + (Map + [ (B #0123, I 12345) + , (I 789453, B #456789) + , (List [I -12364689486], Constr 7 []) ]) + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisByteString/dataMisByteString.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisByteString/dataMisByteString.uplc new file mode 100644 index 00000000..81af66b8 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisByteString/dataMisByteString.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con data (B 42))) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisByteString/dataMisByteString.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisByteString/dataMisByteString.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisByteString/dataMisByteString.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisByteString/dataMisByteString.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisByteString/dataMisByteString.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisByteString/dataMisByteString.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisConstr/dataMisConstr.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisConstr/dataMisConstr.uplc new file mode 100644 index 00000000..dc217810 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisConstr/dataMisConstr.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con data (Constr [I 1]))) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisConstr/dataMisConstr.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisConstr/dataMisConstr.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisConstr/dataMisConstr.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisConstr/dataMisConstr.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisConstr/dataMisConstr.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisConstr/dataMisConstr.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisInteger/dataMisInteger.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisInteger/dataMisInteger.uplc new file mode 100644 index 00000000..7f58fe26 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisInteger/dataMisInteger.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con data (I []))) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisInteger/dataMisInteger.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisInteger/dataMisInteger.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisInteger/dataMisInteger.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisInteger/dataMisInteger.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisInteger/dataMisInteger.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisInteger/dataMisInteger.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisList/dataMisList.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisList/dataMisList.uplc new file mode 100644 index 00000000..5f454002 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisList/dataMisList.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con data (List #ABCDEF))) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisList/dataMisList.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisList/dataMisList.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisList/dataMisList.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisList/dataMisList.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisList/dataMisList.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisList/dataMisList.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisMap/dataMisMap.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisMap/dataMisMap.uplc new file mode 100644 index 00000000..089f5300 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisMap/dataMisMap.uplc @@ -0,0 +1,5 @@ +(program 0.0.0 (con data ( + List [ (B #0123, I 12345), + (B #456789, I 789453), + (B #0ABCDE, I 12364689486)] +))) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisMap/dataMisMap.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisMap/dataMisMap.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisMap/dataMisMap.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisMap/dataMisMap.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisMap/dataMisMap.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/data/dataMisMap/dataMisMap.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer1/integer1.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer1/integer1.uplc new file mode 100644 index 00000000..e06cd113 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer1/integer1.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con integer 0)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer1/integer1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer1/integer1.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer1/integer1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer1/integer1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer1/integer1.uplc.expected new file mode 100644 index 00000000..e06cd113 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer1/integer1.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con integer 0)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer10/integer10.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer10/integer10.uplc new file mode 100644 index 00000000..361cd5f1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer10/integer10.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con integer #12)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer10/integer10.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer10/integer10.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer10/integer10.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer10/integer10.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer10/integer10.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer10/integer10.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer2/integer2.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer2/integer2.uplc new file mode 100644 index 00000000..3a607321 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer2/integer2.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con integer 1)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer2/integer2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer2/integer2.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer2/integer2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer2/integer2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer2/integer2.uplc.expected new file mode 100644 index 00000000..3a607321 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer2/integer2.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con integer 1)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer3/integer3.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer3/integer3.uplc new file mode 100644 index 00000000..ea34ff65 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer3/integer3.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con integer -1)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer3/integer3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer3/integer3.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer3/integer3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer3/integer3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer3/integer3.uplc.expected new file mode 100644 index 00000000..ea34ff65 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer3/integer3.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con integer -1)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer4/integer4.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer4/integer4.uplc new file mode 100644 index 00000000..c99975ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer4/integer4.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con integer 000000000000000000000000000000000000012345)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer4/integer4.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer4/integer4.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer4/integer4.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer4/integer4.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer4/integer4.uplc.expected new file mode 100644 index 00000000..763a811d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer4/integer4.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con integer 12345)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer5/integer5.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer5/integer5.uplc new file mode 100644 index 00000000..a49d8300 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer5/integer5.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con integer -000000000000000000000000000000000000012345)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer5/integer5.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer5/integer5.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer5/integer5.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer5/integer5.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer5/integer5.uplc.expected new file mode 100644 index 00000000..52314dc0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer5/integer5.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con integer -12345)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer6/integer6.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer6/integer6.uplc new file mode 100644 index 00000000..7c107ebf --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer6/integer6.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con integer 7934472584735297345829374203940389857324250374130461237461374324689198237413246172439813568362847918324132461234689173469172364972574327894626348923469234728574196241238723984567805163407561370166661807515263473485635726)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer6/integer6.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer6/integer6.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer6/integer6.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer6/integer6.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer6/integer6.uplc.expected new file mode 100644 index 00000000..fdd7d862 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer6/integer6.uplc.expected @@ -0,0 +1,7 @@ +(program + 0.0.0 + (con + integer + 7934472584735297345829374203940389857324250374130461237461374324689198237413246172439813568362847918324132461234689173469172364972574327894626348923469234728574196241238723984567805163407561370166661807515263473485635726 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer7/integer7.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer7/integer7.uplc new file mode 100644 index 00000000..38619113 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer7/integer7.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con integer -7934472584735297345829374203940389857324250374130461237461374324689198237413246172439813568362847918324132461234689173469172364972574327894626348923469234728574196241238723984567805163407561370166661807515263473485635726)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer7/integer7.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer7/integer7.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer7/integer7.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer7/integer7.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer7/integer7.uplc.expected new file mode 100644 index 00000000..a921d650 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer7/integer7.uplc.expected @@ -0,0 +1,7 @@ +(program + 0.0.0 + (con + integer + -7934472584735297345829374203940389857324250374130461237461374324689198237413246172439813568362847918324132461234689173469172364972574327894626348923469234728574196241238723984567805163407561370166661807515263473485635726 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer8/integer8.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer8/integer8.uplc new file mode 100644 index 00000000..1e467b5e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer8/integer8.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con integer +7934472584735297345829374203940389857324250374130461237461374324689198237413246172439813568362847918324132461234689173469172364972574327894626348923469234728574196241238723984567805163407561370166661807515263473485635726)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer8/integer8.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer8/integer8.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer8/integer8.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer8/integer8.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer8/integer8.uplc.expected new file mode 100644 index 00000000..fdd7d862 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer8/integer8.uplc.expected @@ -0,0 +1,7 @@ +(program + 0.0.0 + (con + integer + 7934472584735297345829374203940389857324250374130461237461374324689198237413246172439813568362847918324132461234689173469172364972574327894626348923469234728574196241238723984567805163407561370166661807515263473485635726 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer9/integer9.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer9/integer9.uplc new file mode 100644 index 00000000..20875544 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer9/integer9.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con integer 0.5)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer9/integer9.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer9/integer9.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer9/integer9.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer9/integer9.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer9/integer9.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/integer/integer9/integer9.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/list/emptyList/emptyList.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/list/emptyList/emptyList.uplc new file mode 100644 index 00000000..23186348 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/list/emptyList/emptyList.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con (list integer) [])) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/list/emptyList/emptyList.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/list/emptyList/emptyList.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/list/emptyList/emptyList.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/list/emptyList/emptyList.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/list/emptyList/emptyList.uplc.expected new file mode 100644 index 00000000..06b79711 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/list/emptyList/emptyList.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con (list integer) [])) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/list/illTypedList1/illTypedList1.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/list/illTypedList1/illTypedList1.uplc new file mode 100644 index 00000000..6b5e698f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/list/illTypedList1/illTypedList1.uplc @@ -0,0 +1,2 @@ +(program 0.0.0 (con (list bool) [5]) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/list/illTypedList1/illTypedList1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/list/illTypedList1/illTypedList1.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/list/illTypedList1/illTypedList1.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/list/illTypedList1/illTypedList1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/list/illTypedList1/illTypedList1.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/list/illTypedList1/illTypedList1.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/list/illTypedList2/illTypedList2.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/list/illTypedList2/illTypedList2.uplc new file mode 100644 index 00000000..bdc97017 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/list/illTypedList2/illTypedList2.uplc @@ -0,0 +1,2 @@ +(program 0.0.0 (con (list bool) [(lam x (lam y x))]) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/list/illTypedList2/illTypedList2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/list/illTypedList2/illTypedList2.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/list/illTypedList2/illTypedList2.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/list/illTypedList2/illTypedList2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/list/illTypedList2/illTypedList2.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/list/illTypedList2/illTypedList2.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/list/simpleList/simpleList.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/list/simpleList/simpleList.uplc new file mode 100644 index 00000000..7bc665c7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/list/simpleList/simpleList.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con list(bool) [True, False, True])) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/list/simpleList/simpleList.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/list/simpleList/simpleList.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/list/simpleList/simpleList.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/list/simpleList/simpleList.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/list/simpleList/simpleList.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/list/simpleList/simpleList.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/list/unitList/unitList.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/list/unitList/unitList.uplc new file mode 100644 index 00000000..94d3283e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/list/unitList/unitList.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con list(unit) [(), (), (), (), ()])) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/list/unitList/unitList.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/list/unitList/unitList.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/list/unitList/unitList.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/list/unitList/unitList.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/list/unitList/unitList.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/list/unitList/unitList.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedNestedPair/illTypedNestedPair.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedNestedPair/illTypedNestedPair.uplc new file mode 100644 index 00000000..5f84376a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedNestedPair/illTypedNestedPair.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con (pair integer (pair bool unit)) (12345, ((),True)))) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedNestedPair/illTypedNestedPair.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedNestedPair/illTypedNestedPair.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedNestedPair/illTypedNestedPair.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedNestedPair/illTypedNestedPair.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedNestedPair/illTypedNestedPair.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedNestedPair/illTypedNestedPair.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedPair1/illTypedPair1.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedPair1/illTypedPair1.uplc new file mode 100644 index 00000000..36565469 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedPair1/illTypedPair1.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con (pair integer string) ((lam x x), 1)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedPair1/illTypedPair1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedPair1/illTypedPair1.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedPair1/illTypedPair1.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedPair1/illTypedPair1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedPair1/illTypedPair1.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedPair1/illTypedPair1.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedPair2/illTypedPair2.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedPair2/illTypedPair2.uplc new file mode 100644 index 00000000..deb91132 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedPair2/illTypedPair2.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con (pair integer string) (1, (lam y y)))) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedPair2/illTypedPair2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedPair2/illTypedPair2.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedPair2/illTypedPair2.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedPair2/illTypedPair2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedPair2/illTypedPair2.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/illTypedPair2/illTypedPair2.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/pair/nestedPair/nestedPair.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/nestedPair/nestedPair.uplc new file mode 100644 index 00000000..b4c51ca6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/nestedPair/nestedPair.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con (pair integer (pair unit bool)) (12345, ((),True)))) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/pair/nestedPair/nestedPair.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/nestedPair/nestedPair.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/nestedPair/nestedPair.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/pair/nestedPair/nestedPair.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/nestedPair/nestedPair.uplc.expected new file mode 100644 index 00000000..e96a5edd --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/nestedPair/nestedPair.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con (pair integer (pair unit bool)) (12345, ((), True)))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/pair/simplePair/simplePair.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/simplePair/simplePair.uplc new file mode 100644 index 00000000..401d7bd5 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/simplePair/simplePair.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con (pair integer bool) (12345, True))) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/pair/simplePair/simplePair.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/simplePair/simplePair.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/simplePair/simplePair.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/pair/simplePair/simplePair.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/simplePair/simplePair.uplc.expected new file mode 100644 index 00000000..7c2f3f4c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/pair/simplePair/simplePair.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con (pair integer bool) (12345, True))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/string/string1/string1.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string1/string1.uplc new file mode 100644 index 00000000..e0d6a782 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string1/string1.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + (con string "") +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/string/string1/string1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string1/string1.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string1/string1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/string/string1/string1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string1/string1.uplc.expected new file mode 100644 index 00000000..d8299528 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string1/string1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con string "")) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/string/string2/string2.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string2/string2.uplc new file mode 100644 index 00000000..9d965994 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string2/string2.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + (con string "xyz") +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/string/string2/string2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string2/string2.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string2/string2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/string/string2/string2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string2/string2.uplc.expected new file mode 100644 index 00000000..40502194 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string2/string2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con string "xyz")) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/string/string3/string3.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string3/string3.uplc new file mode 100644 index 00000000..5f3458d3 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string3/string3.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + (con string "λ-calculus") +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/string/string3/string3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string3/string3.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string3/string3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/string/string3/string3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string3/string3.uplc.expected new file mode 100644 index 00000000..6d9ed766 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string3/string3.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con string "λ-calculus")) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/string/string6/string6.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string6/string6.uplc new file mode 100644 index 00000000..e757be6a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string6/string6.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + (con string 144) +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/string/string6/string6.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string6/string6.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string6/string6.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/string/string6/string6.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string6/string6.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/string/string6/string6.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/unit/conUnit.uplc b/crates/uplc/test_data/conformance/v3/builtin/constant/unit/conUnit.uplc new file mode 100644 index 00000000..9d38fea4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/unit/conUnit.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con unit ())) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/unit/conUnit.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/unit/conUnit.uplc.expected new file mode 100644 index 00000000..9d38fea4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/unit/conUnit.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con unit ())) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/unit/unit.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/unit/unit.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/unit/unit.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/constant/unit/unit.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/constant/unit/unit.uplc.expected new file mode 100644 index 00000000..9d38fea4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/constant/unit/unit.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con unit ())) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/README.md b/crates/uplc/test_data/conformance/v3/builtin/interleaving/README.md new file mode 100644 index 00000000..ccce66b6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/README.md @@ -0,0 +1,6 @@ +The test cases here are all extracted from the tests in +`plutus-core/untyped-plutus-core/test/Evaluation/Golden.hs` and check that +interleaving of forces and normal arguments for builtin applications behaves +correctly. Most of these are for `ifThenElse` (`ite`) because that has the most +complicated interleaving behaviour of our current builtins (it expects an +argument of the built-in `bool` type, then a `force`, then two term arguments). diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/ite/ite.uplc b/crates/uplc/test_data/conformance/v3/builtin/interleaving/ite/ite.uplc new file mode 100644 index 00000000..2ca61006 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/ite/ite.uplc @@ -0,0 +1 @@ +(program 1.0.0 (builtin ifThenElse)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/ite/ite.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/ite/ite.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/ite/ite.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/ite/ite.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/ite/ite.uplc.expected new file mode 100644 index 00000000..949db010 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/ite/ite.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (builtin ifThenElse)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc new file mode 100644 index 00000000..71bd3758 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc @@ -0,0 +1,15 @@ +(program + 1.0.0 + [ + [ + [ + (force (builtin ifThenElse)) + [ + [ (builtin lessThanEqualsInteger) (con integer 11) ] (con integer 22) + ] + ] + [ (builtin multiplyInteger) (con integer 11) ] + ] + [ (builtin subtractInteger) (con integer 22) ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc.budget.expected new file mode 100644 index 00000000..aad41aad --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 375986 +| mem: 1702}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc.expected new file mode 100644 index 00000000..fcade660 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 [ (builtin multiplyInteger) (con integer 11) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc new file mode 100644 index 00000000..de100aa2 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc @@ -0,0 +1,15 @@ +(program + 1.0.0 + [ + [ + [ + (force (builtin ifThenElse)) + [ + [ (builtin lessThanEqualsInteger) (con integer 11) ] (con integer 22) + ] + ] + (builtin multiplyInteger) + ] + (builtin subtractInteger) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc.budget.expected new file mode 100644 index 00000000..6dd0d41e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 311986 +| mem: 1302}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc.expected new file mode 100644 index 00000000..481d11b2 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (builtin multiplyInteger)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc new file mode 100644 index 00000000..7aac3734 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc @@ -0,0 +1,19 @@ +(program + 1.0.0 + [ + [ + [ + [ + (force (builtin ifThenElse)) + [ + [ (builtin lessThanEqualsInteger) (con integer 11) ] + (con integer 22) + ] + ] + [ (builtin multiplyInteger) (con integer 11) ] + ] + [ (builtin subtractInteger) (con integer 22) ] + ] + (con integer 22) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc.budget.expected new file mode 100644 index 00000000..bc03a7e9 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 498939 +| mem: 1904}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc.expected new file mode 100644 index 00000000..d1dce902 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 242)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc new file mode 100644 index 00000000..9e657306 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc @@ -0,0 +1,7 @@ +(program + 1.0.0 + [ + (force (builtin ifThenElse)) + [ [ (builtin lessThanEqualsInteger) (con integer 11) ] (con integer 22) ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc.budget.expected new file mode 100644 index 00000000..c99a757d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 171937 +| mem: 901}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc.expected new file mode 100644 index 00000000..b3517aef --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 [ (force (builtin ifThenElse)) (con bool True) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForceAppForce/iteForceAppForce.uplc b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForceAppForce/iteForceAppForce.uplc new file mode 100644 index 00000000..6d1f1562 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForceAppForce/iteForceAppForce.uplc @@ -0,0 +1,9 @@ +(program + 1.0.0 + (force + [ + (force (builtin ifThenElse)) + [ [ (builtin lessThanEqualsInteger) (con integer 11) ] (con integer 22) ] + ] + ) +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForceAppForce/iteForceAppForce.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForceAppForce/iteForceAppForce.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForceAppForce/iteForceAppForce.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForceAppForce/iteForceAppForce.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForceAppForce/iteForceAppForce.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForceAppForce/iteForceAppForce.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForced/iteForced.uplc b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForced/iteForced.uplc new file mode 100644 index 00000000..76701502 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForced/iteForced.uplc @@ -0,0 +1 @@ +(program 1.0.0 (force (builtin ifThenElse))) diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForced/iteForced.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForced/iteForced.uplc.budget.expected new file mode 100644 index 00000000..9aec697a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForced/iteForced.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 32100 +| mem: 300}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForced/iteForced.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForced/iteForced.uplc.expected new file mode 100644 index 00000000..4612bc65 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForced/iteForced.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (force (builtin ifThenElse))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForcedForced/iteForcedForced.uplc b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForcedForced/iteForcedForced.uplc new file mode 100644 index 00000000..c67e25cd --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForcedForced/iteForcedForced.uplc @@ -0,0 +1 @@ +(program 1.0.0 (force (force (builtin ifThenElse)))) diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForcedForced/iteForcedForced.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForcedForced/iteForcedForced.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForcedForced/iteForcedForced.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForcedForced/iteForcedForced.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForcedForced/iteForcedForced.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForcedForced/iteForcedForced.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc new file mode 100644 index 00000000..86db2181 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc @@ -0,0 +1,15 @@ +(program + 1.0.0 + [ + [ + [ + (force (builtin ifThenElse)) + [ + [ (builtin lessThanEqualsInteger) (con integer 11) ] (con integer 22) + ] + ] + (con integer 33) + ] + (con string "abc") + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc.budget.expected new file mode 100644 index 00000000..6dd0d41e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 311986 +| mem: 1302}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc.expected new file mode 100644 index 00000000..b06788db --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 33)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteStringInteger/iteStringInteger.uplc b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteStringInteger/iteStringInteger.uplc new file mode 100644 index 00000000..d0d331c0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteStringInteger/iteStringInteger.uplc @@ -0,0 +1,17 @@ +-- This is OK because the branches are terms and there's no requirement that +--their types match in UPLC even if they do happen to be builtin constants. +(program + 1.0.0 + [ + [ + [ + (force (builtin ifThenElse)) + [ + [ (builtin lessThanEqualsInteger) (con integer 11) ] (con integer 22) + ] + ] + (con string "11 <= 22") + ] + (con integer -1111) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteStringInteger/iteStringInteger.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteStringInteger/iteStringInteger.uplc.budget.expected new file mode 100644 index 00000000..6dd0d41e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteStringInteger/iteStringInteger.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 311986 +| mem: 1302}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteStringInteger/iteStringInteger.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteStringInteger/iteStringInteger.uplc.expected new file mode 100644 index 00000000..5847f262 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteStringInteger/iteStringInteger.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con string "11 <= 22")) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteStringString/iteStringString.uplc b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteStringString/iteStringString.uplc new file mode 100644 index 00000000..1c03b179 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteStringString/iteStringString.uplc @@ -0,0 +1,15 @@ +(program + 1.0.0 + [ + [ + [ + (force (builtin ifThenElse)) + [ + [ (builtin lessThanEqualsInteger) (con integer 11) ] (con integer 22) + ] + ] + (con string "11 <= 22") + ] + (con string "\172(11 <= 22)") + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteStringString/iteStringString.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteStringString/iteStringString.uplc.budget.expected new file mode 100644 index 00000000..6dd0d41e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteStringString/iteStringString.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 311986 +| mem: 1302}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteStringString/iteStringString.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteStringString/iteStringString.uplc.expected new file mode 100644 index 00000000..5847f262 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteStringString/iteStringString.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con string "11 <= 22")) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteUnforcedFullyApplied/iteUnforcedFullyApplied.uplc b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteUnforcedFullyApplied/iteUnforcedFullyApplied.uplc new file mode 100644 index 00000000..e7d473f1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteUnforcedFullyApplied/iteUnforcedFullyApplied.uplc @@ -0,0 +1,15 @@ +(program + 1.0.0 + [ + [ + [ + (builtin ifThenElse) + [ + [ (builtin lessThanEqualsInteger) (con integer 11) ] (con integer 22) + ] + ] + (con string "11 <= 22") + ] + (con string "\172(11 <= 22)") + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteUnforcedFullyApplied/iteUnforcedFullyApplied.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteUnforcedFullyApplied/iteUnforcedFullyApplied.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteUnforcedFullyApplied/iteUnforcedFullyApplied.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteUnforcedFullyApplied/iteUnforcedFullyApplied.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteUnforcedFullyApplied/iteUnforcedFullyApplied.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteUnforcedFullyApplied/iteUnforcedFullyApplied.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteUnforcedWithCond/iteUnforcedWithCond.uplc b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteUnforcedWithCond/iteUnforcedWithCond.uplc new file mode 100644 index 00000000..c0e48127 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteUnforcedWithCond/iteUnforcedWithCond.uplc @@ -0,0 +1,7 @@ +(program + 1.0.0 + [ + (builtin ifThenElse) + [ [ (builtin lessThanEqualsInteger) (con integer 11) ] (con integer 22) ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteUnforcedWithCond/iteUnforcedWithCond.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteUnforcedWithCond/iteUnforcedWithCond.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteUnforcedWithCond/iteUnforcedWithCond.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteUnforcedWithCond/iteUnforcedWithCond.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteUnforcedWithCond/iteUnforcedWithCond.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteUnforcedWithCond/iteUnforcedWithCond.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteWrongCondTypeFullyAppied/iteWrongCondTypeFullyAppied.uplc b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteWrongCondTypeFullyAppied/iteWrongCondTypeFullyAppied.uplc new file mode 100644 index 00000000..fd67f901 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteWrongCondTypeFullyAppied/iteWrongCondTypeFullyAppied.uplc @@ -0,0 +1,10 @@ +(program + 1.0.0 + [ + [ + [ (force (builtin ifThenElse)) (con string "11 <= 22") ] + (con string "\172(11 <= 22)") + ] + (con string "\172(11 <= 22)") + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteWrongCondTypeFullyAppied/iteWrongCondTypeFullyAppied.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteWrongCondTypeFullyAppied/iteWrongCondTypeFullyAppied.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteWrongCondTypeFullyAppied/iteWrongCondTypeFullyAppied.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteWrongCondTypeFullyAppied/iteWrongCondTypeFullyAppied.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteWrongCondTypeFullyAppied/iteWrongCondTypeFullyAppied.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteWrongCondTypeFullyAppied/iteWrongCondTypeFullyAppied.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc new file mode 100644 index 00000000..b356a921 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc @@ -0,0 +1,7 @@ +(program + 1.0.0 + [ + [ (force (builtin ifThenElse)) (con string "11 <= 22") ] + (con string "\172(11 <= 22)") + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc.budget.expected new file mode 100644 index 00000000..1014595b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 96100 +| mem: 700}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc.expected new file mode 100644 index 00000000..aead86ec --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc.expected @@ -0,0 +1,4 @@ +(program 1.0.0 [ + [ (force (builtin ifThenElse)) (con string "11 <= 22") ] + (con string "\172(11 <= 22)") +]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError1/multiplyIntegerForceError1.uplc b/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError1/multiplyIntegerForceError1.uplc new file mode 100644 index 00000000..5207ac90 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError1/multiplyIntegerForceError1.uplc @@ -0,0 +1,4 @@ +(program + 1.0.0 + [ [ (force (builtin multiplyInteger)) (con integer 11) ] (con integer 22) ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError1/multiplyIntegerForceError1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError1/multiplyIntegerForceError1.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError1/multiplyIntegerForceError1.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError1/multiplyIntegerForceError1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError1/multiplyIntegerForceError1.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError1/multiplyIntegerForceError1.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError2/multiplyIntegerForceError2.uplc b/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError2/multiplyIntegerForceError2.uplc new file mode 100644 index 00000000..b3efb7d1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError2/multiplyIntegerForceError2.uplc @@ -0,0 +1,4 @@ +(program + 1.0.0 + [ (force [ (builtin multiplyInteger) (con integer 11) ]) (con integer 22) ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError2/multiplyIntegerForceError2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError2/multiplyIntegerForceError2.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError2/multiplyIntegerForceError2.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError2/multiplyIntegerForceError2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError2/multiplyIntegerForceError2.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError2/multiplyIntegerForceError2.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError3/multiplyIntegerForceError3.uplc b/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError3/multiplyIntegerForceError3.uplc new file mode 100644 index 00000000..4f2815ba --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError3/multiplyIntegerForceError3.uplc @@ -0,0 +1,4 @@ +(program + 1.0.0 + (force [ [ (builtin multiplyInteger) (con integer 11) ] (con integer 22) ]) +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError3/multiplyIntegerForceError3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError3/multiplyIntegerForceError3.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError3/multiplyIntegerForceError3.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError3/multiplyIntegerForceError3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError3/multiplyIntegerForceError3.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/interleaving/multiplyIntegerForceError3/multiplyIntegerForceError3.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/README.md b/crates/uplc/test_data/conformance/v3/builtin/semantics/README.md new file mode 100644 index 00000000..cedbb4c6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/README.md @@ -0,0 +1,2 @@ +The tests here are mostly unit tests to make sure that built-in functions +produce correct results. \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc new file mode 100644 index 00000000..09ac9dda --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ (builtin addInteger) (con integer 1) (con integer 2) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc.budget.expected new file mode 100644 index 00000000..b9fdce3d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 181308 +| mem: 602}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc.expected new file mode 100644 index 00000000..81805779 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 3)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger1/addInteger1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger1/addInteger1.uplc new file mode 100644 index 00000000..fb5df464 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger1/addInteger1.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin addInteger) (con integer 1)] (con integer 1) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger1/addInteger1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger1/addInteger1.uplc.budget.expected new file mode 100644 index 00000000..b9fdce3d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger1/addInteger1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 181308 +| mem: 602}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger1/addInteger1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger1/addInteger1.uplc.expected new file mode 100644 index 00000000..00abe6f7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger1/addInteger1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 2)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger2/addInteger2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger2/addInteger2.uplc new file mode 100644 index 00000000..7925b9e8 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger2/addInteger2.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin addInteger) (con integer -1789345783478975892347952789342)] (con integer 5734) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger2/addInteger2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger2/addInteger2.uplc.budget.expected new file mode 100644 index 00000000..18f2a4a0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger2/addInteger2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 181728 +| mem: 603}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger2/addInteger2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger2/addInteger2.uplc.expected new file mode 100644 index 00000000..1b990d66 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger2/addInteger2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer -1789345783478975892347952783608)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger3/addInteger3.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger3/addInteger3.uplc new file mode 100644 index 00000000..da8848f6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger3/addInteger3.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin addInteger) (con integer -1789345783478975892347952789342)] (con integer 57347348957247358792345278346357234234527384258346526378567285925786235963258) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger3/addInteger3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger3/addInteger3.uplc.budget.expected new file mode 100644 index 00000000..85330367 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger3/addInteger3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 182568 +| mem: 605}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger3/addInteger3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger3/addInteger3.uplc.expected new file mode 100644 index 00000000..44365eb8 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger3/addInteger3.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + integer + 57347348957247358792345278346357234234527384256557180595088310033438283173916 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger4/addInteger4.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger4/addInteger4.uplc new file mode 100644 index 00000000..01287f77 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger4/addInteger4.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin addInteger) (con integer 0)] (con integer 7527934965792342535732746236582734865623578) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger4/addInteger4.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger4/addInteger4.uplc.budget.expected new file mode 100644 index 00000000..47bdb6d3 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger4/addInteger4.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 182148 +| mem: 604}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger4/addInteger4.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger4/addInteger4.uplc.expected new file mode 100644 index 00000000..22b875f8 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/addInteger/addInteger4/addInteger4.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 7527934965792342535732746236582734865623578)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc new file mode 100644 index 00000000..90ea6670 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc @@ -0,0 +1 @@ +(program 0.0.0 [ [(builtin appendByteString) (con bytestring #00AABBCC)] (con bytestring #FF0033) ]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc.budget.expected new file mode 100644 index 00000000..9421acd7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 81446 +| mem: 602}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc.expected new file mode 100644 index 00000000..587ff840 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bytestring #00aabbccff0033)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc new file mode 100644 index 00000000..dbed1cf4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc @@ -0,0 +1 @@ +(program 0.0.0 [ [(builtin appendByteString) (con bytestring #00AABBCC)] (con bytestring #) ]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc.budget.expected new file mode 100644 index 00000000..9421acd7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 81446 +| mem: 602}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc.expected new file mode 100644 index 00000000..d061c931 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bytestring #00aabbcc)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc new file mode 100644 index 00000000..3dffc104 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc @@ -0,0 +1 @@ +(program 0.0.0 [ [(builtin appendByteString) (con bytestring #)] (con bytestring #FF0033) ]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc.budget.expected new file mode 100644 index 00000000..9421acd7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 81446 +| mem: 602}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc.expected new file mode 100644 index 00000000..f3f429cd --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bytestring #ff0033)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/appendString/appendString.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendString/appendString.uplc new file mode 100644 index 00000000..ed86e929 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendString/appendString.uplc @@ -0,0 +1 @@ +(program 0.0.0 [ [ (builtin appendString) (con string "Ola")] (con string " mundo!") ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/appendString/appendString.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendString/appendString.uplc.budget.expected new file mode 100644 index 00000000..ab254feb --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendString/appendString.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 680670 +| mem: 614}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/appendString/appendString.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendString/appendString.uplc.expected new file mode 100644 index 00000000..e8d632be --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/appendString/appendString.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con string "Ola mundo!")) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bData/bData.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bData/bData.uplc new file mode 100644 index 00000000..bef4ce43 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bData/bData.uplc @@ -0,0 +1 @@ +(program 0.0.0 [(builtin bData) (con bytestring #0AFD)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bData/bData.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bData/bData.uplc.budget.expected new file mode 100644 index 00000000..16b0be22 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bData/bData.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 59283 +| mem: 432}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bData/bData.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bData/bData.uplc.expected new file mode 100644 index 00000000..11186be5 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bData/bData.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con data (B #0afd))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc new file mode 100644 index 00000000..45a18be9 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc @@ -0,0 +1,14 @@ +-- Test vector (0-bit input) for Blake2b_224. +-- Output obtained using the b2sum program from https://github.com/BLAKE2/BLAKE2 +(program 1.0.0 + [ + [ + (builtin equalsByteString) + [ + (builtin blake2b_224) + (con bytestring #) + ] + ] + (con bytestring #836cc68931c2e4e3e838602eca1902591d216837bafddfe6f0c8cb07) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc.budget.expected new file mode 100644 index 00000000..d69e333f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 357676 +| mem: 805}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc new file mode 100644 index 00000000..d61bf4df --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc @@ -0,0 +1,14 @@ +-- Test vector (200-bit input) for Blake2b_224. +-- Output obtained using the b2sum program from https://github.com/BLAKE2/BLAKE2 +(program 1.0.0 + [ + [ + (builtin equalsByteString) + [ + (builtin blake2b_224) + (con bytestring #2e7ea84da4bc4d7cfb463e3f2c8647057afff3fbececa1d200) + ] + ] + (con bytestring #93d4b80c531998973b08297fc5042af359865a8702f20b5fc2db8df5) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc.budget.expected new file mode 100644 index 00000000..38545e03 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 382606 +| mem: 805}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc new file mode 100644 index 00000000..7e83f348 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc @@ -0,0 +1,14 @@ +-- Test vector (0-bit input) for Blake2b_256. +-- Output obtained using the b2sum program from https://github.com/BLAKE2/BLAKE2 +(program 1.0.0 + [ + [ + (builtin equalsByteString) + [ + (builtin blake2b_256) + (con bytestring #) + ] + ] + (con bytestring #0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc.budget.expected new file mode 100644 index 00000000..a616120e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 351411 +| mem: 805}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc new file mode 100644 index 00000000..41a9dc7d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc @@ -0,0 +1,14 @@ +-- Test vector (200-bit input) for Blake2b_256. +-- Output obtained using the b2sum program from https://github.com/BLAKE2/BLAKE2 +(program 1.0.0 + [ + [ + (builtin equalsByteString) + [ + (builtin blake2b_256) + (con bytestring #2e7ea84da4bc4d7cfb463e3f2c8647057afff3fbececa1d200) + ] + ] + (con bytestring #91c60f99b33303c02b39ed93b713e3915a180c3747f3b31e05727618ee401624) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc.budget.expected new file mode 100644 index 00000000..7923c6ef --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 376479 +| mem: 805}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc new file mode 100644 index 00000000..b1a604fe --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc @@ -0,0 +1,25 @@ +-- Check that adding two random points in G1 gives the expected result. +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_equal) + [ + (builtin bls12_381_G1_add) + [ + (builtin bls12_381_G1_uncompress) + (con bytestring #b93105d0cff4c3f6a42ab790900a26bb1843f4b07fc83d527a66e4a2ddf6c49ea86fe37b1106dbd20dc280ec5996dadf + ) + ] + [ + (builtin bls12_381_G1_uncompress) + (con bytestring #a077246742bfbffdefc1193aba17434d337f231478bf63173065c1e09c34429e76877983ae5f3add1438e5d237f63724 + ) + ] + ] + ] + (con + bls12_381_G1_element + 0x9863eb0a7f8b092fca1a4333866ae3579ad2a4edef84bfcdf736333b3adf0100820c7603b002bf911b564cf032392f07 + ) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc.budget.expected new file mode 100644 index 00000000..ff89093a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 107508687 +| mem: 1455}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc new file mode 100644 index 00000000..df1fe94f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc @@ -0,0 +1,19 @@ +-- Check that negating a random point in G1 gives the expected result. +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_equal) + [ + (builtin bls12_381_G1_neg) + [ + (builtin bls12_381_G1_uncompress) + (con bytestring #b93105d0cff4c3f6a42ab790900a26bb1843f4b07fc83d527a66e4a2ddf6c49ea86fe37b1106dbd20dc280ec5996dadf) + ] + ] + ] + (con + bls12_381_G1_element + 0x993105d0cff4c3f6a42ab790900a26bb1843f4b07fc83d527a66e4a2ddf6c49ea86fe37b1106dbd20dc280ec5996dadf + ) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc.budget.expected new file mode 100644 index 00000000..d3075265 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53802159 +| mem: 1037}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc new file mode 100644 index 00000000..c3180379 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc @@ -0,0 +1,23 @@ +-- Scalar multiplication gives the correct result. +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_equal) + [ + [ + (builtin bls12_381_G1_scalarMul) + (con integer 29342537169447282925541144552701591957563885683358707334406144036950193508773) + -- 0x40df499974f62e2f268cd5096b0d952073900054122ffce0a27c9d96932891a5 + ] + [ + (builtin bls12_381_G1_uncompress) + (con bytestring #a077246742bfbffdefc1193aba17434d337f231478bf63173065c1e09c34429e76877983ae5f3add1438e5d237f63724) + ] + ] + ] + (con + bls12_381_G1_element + 0xa07796202c3fcad405a5da58d99f0194c8ee21999dd03291f0bfe97e68eb4e69077cf8052b9f5d9cbc4a1394baa0e0d8 + ) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc.budget.expected new file mode 100644 index 00000000..b41af3b6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 130034708 +| mem: 1237}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/off-curve/off-curve.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/off-curve/off-curve.uplc new file mode 100644 index 00000000..b68df371 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/off-curve/off-curve.uplc @@ -0,0 +1,7 @@ +-- This contains a value which is not the x-coordinate of a point on the E1 curve. +(program 0.0.0 + [ + (builtin bls12_381_G1_uncompress) + (con bytestring #864cc4f64b12ca99ecdd1962572e6add609d9c619aab678b3fc298bc2f0f81feb4f0d3ebad7e850a8bcb52ca467e649d) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/off-curve/off-curve.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/off-curve/off-curve.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/off-curve/off-curve.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/off-curve/off-curve.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/off-curve/off-curve.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/off-curve/off-curve.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/out-of-group/out-of-group.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/out-of-group/out-of-group.uplc new file mode 100644 index 00000000..2e6aaa05 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/out-of-group/out-of-group.uplc @@ -0,0 +1,8 @@ +-- This contains a value which is the x-coordinate of a point which lies on the +-- E1 curve but not the G1 subgroup. +(program 0.0.0 + [ + (builtin bls12_381_G1_uncompress) + (con bytestring #9483141c933166b61990a706aca07f467d22bc34c6552f5bba91cb1fc21db51d03dfff6523a5e1b4285d54c47660eda1) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/out-of-group/out-of-group.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/out-of-group/out-of-group.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/out-of-group/out-of-group.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/out-of-group/out-of-group.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/out-of-group/out-of-group.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G1/uncompress/out-of-group/out-of-group.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc new file mode 100644 index 00000000..f98f8755 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc @@ -0,0 +1,31 @@ +-- Check that adding two random points in G2 gives the expected result. +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_equal) + [ + [ + (builtin bls12_381_G2_add) + [ + (builtin bls12_381_G2_uncompress) + (con + bytestring + #b5ed6482bf5486831a9eb445b8b9a77aa6330005b8b432523c69fee7085d3032856de9f857c55ac9745eabcf14894205149cc67393687289e6c2728be69ad1f8ea1a6c0a5a65bf93eca984f3dac5da1abc6f7156ccbc5a33c655f7b17724eb19 + ) + ] + ] + [ + (builtin bls12_381_G2_uncompress) + (con + bytestring + #a6cc0f01663fd65a95d1359758ebe3a412ce05f4242b0c1f5964351b38e188362a8ceb6c2f86d3f7e5f73b60cd04288005d2a50f8ddf1751d7a915515054276fbae7569c3f18c614c9954177d8e745e98404654cf759d4747b0c806bbd336b7d + ) + ] + ] + ] + (con + bls12_381_G2_element + 0xb3db03681aaf0d218be32f7cc94bd6a975c6870b4a1d4e461b77b60eee2461ca367154b0c4583b2d5f81124aa21fdf3e09ff6b54ce7c57572283a175fba381a32ac6f46abaf11cdbaeb206dcd7d4269caa4d0ebbb3adc1b8fce42ccfa855ea83 + ) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc.budget.expected new file mode 100644 index 00000000..c47bdb63 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 152501902 +| mem: 1509}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc new file mode 100644 index 00000000..fd8f4981 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc @@ -0,0 +1,20 @@ +-- Check that negating a random point in G2 gives the expected result. +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_equal) + [ + (builtin bls12_381_G2_neg) + [ + (builtin bls12_381_G2_uncompress) + (con bytestring #b5ed6482bf5486831a9eb445b8b9a77aa6330005b8b432523c69fee7085d3032856de9f857c55ac9745eabcf14894205149cc67393687289e6c2728be69ad1f8ea1a6c0a5a65bf93eca984f3dac5da1abc6f7156ccbc5a33c655f7b17724eb19 + ) + ] + ] + ] + (con + bls12_381_G2_element + 0x95ed6482bf5486831a9eb445b8b9a77aa6330005b8b432523c69fee7085d3032856de9f857c55ac9745eabcf14894205149cc67393687289e6c2728be69ad1f8ea1a6c0a5a65bf93eca984f3dac5da1abc6f7156ccbc5a33c655f7b17724eb19 + ) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc.budget.expected new file mode 100644 index 00000000..507711f1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 76028140 +| mem: 1073}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc new file mode 100644 index 00000000..0815a30a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc @@ -0,0 +1,24 @@ +-- Scalar multiplication gives the correct result. +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_equal) + [ + [ + (builtin bls12_381_G2_scalarMul) + (con integer 29342537169447282925541144552701591957563885683358707334406144036950193508773) + -- 0x40df499974f62e2f268cd5096b0d952073900054122ffce0a27c9d96932891a5 + ] + [ + (builtin bls12_381_G2_uncompress) + (con bytestring #a6cc0f01663fd65a95d1359758ebe3a412ce05f4242b0c1f5964351b38e188362a8ceb6c2f86d3f7e5f73b60cd04288005d2a50f8ddf1751d7a915515054276fbae7569c3f18c614c9954177d8e745e98404654cf759d4747b0c806bbd336b7d + ) + ] + ] + ] + (con + bls12_381_G2_element + 0x89b8e839c317ab3c735c6a65122fff4654f469c30c480701f6e4d9f311f3c5f3411c7cd2876c539bf56f983d14e550b5172765f62bba1235394a33413c21667a57214e9a6f2516f8d7bf57321c20bf8cd8ecd290691ad6bd5ab9e391304240a4 + ) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc.budget.expected new file mode 100644 index 00000000..d09ddd56 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 234103104 +| mem: 1273}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/off-curve/off-curve.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/off-curve/off-curve.uplc new file mode 100644 index 00000000..cd04867d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/off-curve/off-curve.uplc @@ -0,0 +1,7 @@ +-- This contains a value which is not the x-coordinate of a point on the E2 curve. +(program 0.0.0 + [ + (builtin bls12_381_G2_uncompress) + (con bytestring #87861839e602fc5dfa0d0b72232dd81d2b0e4b660a7eba353da27e66ceaf2d6c7734925247281866a12d67752a1edaad01ea59e4e86e2e85a81a573cd68f6dfb526558d81a8f488f261f355ddac23f6caf07d27fda71d8f3968d4ceeda89a09d) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/off-curve/off-curve.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/off-curve/off-curve.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/off-curve/off-curve.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/off-curve/off-curve.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/off-curve/off-curve.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/off-curve/off-curve.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/out-of-group/out-of-group.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/out-of-group/out-of-group.uplc new file mode 100644 index 00000000..405988ab --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/out-of-group/out-of-group.uplc @@ -0,0 +1,9 @@ +-- This contains a value which is the x-coordinate of a point which lies on the +-- E2 curve but not the G2 subgroup. +(program 0.0.0 + [ + (builtin bls12_381_G2_uncompress) + (con bytestring #8bd83699f607412448d202d948bb111badd456d68086ff9a5906ea3b2cda4111d3638391f7a7b153eea77ab47215d6fe13b350f59f884c6e31ac087239d9145b816424cba2c8bcb7b3ed7e19638089d91e5c9136d2aefc8da165284b42229a70 +) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/out-of-group/out-of-group.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/out-of-group/out-of-group.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/out-of-group/out-of-group.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/out-of-group/out-of-group.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/out-of-group/out-of-group.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/G2/uncompress/out-of-group/out-of-group.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/README.md b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/README.md new file mode 100644 index 00000000..4b5f0aef --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/README.md @@ -0,0 +1,22 @@ +These tests reproduce some of those in +[cardano-crypto-tests](https://github.com/IntersectMBO/cardano-base/tree/master/cardano-crypto-tests), +specifically the unit tests in [EllipticCurves.hs](https://github.com/IntersectMBO/cardano-base/blob/master/cardano-crypto-tests/src/Test/Crypto/EllipticCurve.hs). + +The inputs to those tests (and hence these tests) were generated using the Rust +[bls12_381 library](https://docs.rs/bls12_381/latest/bls12_381/), so they +provide independent verification that the basic BLS12-381 functions (here +implemented using the [blst library](https://github.com/supranational/blst)) +behave as expected. Note that the test vectors provided in the [BLS12-381 +specification](https://www.ietf.org/archive/id/draft-irtf-cfrg-pairing-friendly-curves-11.html#name-bls-curves-for-the-128-bit-) +cannot be used because they are **incorrect**. + +The other BLS12-381 conformance tests (in neighbouring directories of the +current one) test a wider range of properties, but their inputs were +chosen semi-randomly and their outputs were generated using the Plutus Core +implementations of the BLS12-381 built-in functions: thus they don't test +against some independent source of truth, although they do guard against changes +in the Plutus Core implementation and can be used to test other Plutus Core +evaluators for compatibilty with the standard one. Also, there are +comprehensive property tests +[here](https://github.com/IntersectMBO/plutus/tree/master/plutus-core/untyped-plutus-core/test/Evaluation/Builtins) +which may be converted into conformance tests at some point in the future. diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc new file mode 100644 index 00000000..0c2c2554 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc @@ -0,0 +1,38 @@ +-- <[a]P,Q> = +(program 1.0.0 + [ + [ + (builtin bls12_381_finalVerify) + [ + [ + (builtin bls12_381_millerLoop) + [ + (builtin bls12_381_G1_uncompress) + (con bytestring #8baa4f3fcd895033f93494b040ccd7dfb77cb759cd2e150bfff4264873174509cd22230423b70896b17c8fc3660f6b21) -- [a]P + ] + ] + [ + (builtin bls12_381_G2_uncompress) + (con bytestring #b67029fbf3ab8e62ab6b499f541537fc07d9466e668392df2bc19762d7dc48b64be09a448cd46dbfe21819a91cd0ab3205f1316ad1cc32853f3f1a1d06497f5cfbc2d753dfc01bff177adeb93f24d452045435dc6eb29f5610b66cd0dd3fb352) -- Q + ] + ] + ] + [ + [ + (builtin bls12_381_millerLoop) + [ + (builtin bls12_381_G1_uncompress) + (con + bytestring + #840463aa2f2cda89985b1f3f5eb43b9c29809765d2747d60734b19d6f90610effdfc500af7d458a3e78cee0945ddc669) -- P + ] + ] + [ + (builtin bls12_381_G2_uncompress) + (con + bytestring + #a80f311db6f2fdc45404870f4c55b65a9a59a35efcfa2a7c595f3955226076bbaa33e403c0d4749495d9423b806f9dbe08cca770e08fa535daefb6dba2edb62f8b9aff6bae83bf48819bcdf98f07e79de8635e8521ddecae19b01a6777bc4684) -- [a]Q + ] + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc.budget.expected new file mode 100644 index 00000000..b6c2e2d1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1097491548 +| mem: 2453}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc new file mode 100644 index 00000000..2eb9faa4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc @@ -0,0 +1,71 @@ +-- <[a]P,Q><[b]P,Q> = <[a+b]P,Q> +(program + 1.0.0 + [ + [ + (builtin bls12_381_finalVerify) + [ + [ + (builtin bls12_381_mulMlResult) + [ + [ + (builtin bls12_381_millerLoop) + [ + (builtin bls12_381_G1_uncompress) + (con + bytestring + #8baa4f3fcd895033f93494b040ccd7dfb77cb759cd2e150bfff4264873174509cd22230423b70896b17c8fc3660f6b21 -- [a]P + ) + ] + ] + [ + (builtin bls12_381_G2_uncompress) + (con + bytestring + #b67029fbf3ab8e62ab6b499f541537fc07d9466e668392df2bc19762d7dc48b64be09a448cd46dbfe21819a91cd0ab3205f1316ad1cc32853f3f1a1d06497f5cfbc2d753dfc01bff177adeb93f24d452045435dc6eb29f5610b66cd0dd3fb352 -- Q + ) + ] + ] + ] + [ + [ + (builtin bls12_381_millerLoop) + [ + (builtin bls12_381_G1_uncompress) + (con + bytestring + #a4a925cb9c0580c14cbc8ec54447eb20070336a61c349c6a64b0d87e4db89d77734021cd88e2da369bdd85c0518c66c4 -- [b]P + ) + ] + ] + [ + (builtin bls12_381_G2_uncompress) + (con + bytestring + #b67029fbf3ab8e62ab6b499f541537fc07d9466e668392df2bc19762d7dc48b64be09a448cd46dbfe21819a91cd0ab3205f1316ad1cc32853f3f1a1d06497f5cfbc2d753dfc01bff177adeb93f24d452045435dc6eb29f5610b66cd0dd3fb352 -- Q + ) + ] + ] + ] + ] + [ + [ + (builtin bls12_381_millerLoop) + [ + (builtin bls12_381_G1_uncompress) + (con + bytestring + #aecf54083187026a6b689e70af54375ab7cc6d0d311acb6203730a2904654d6e92f82e62006c0d5e21094155eb93cc98 -- [a+b]P + ) + ] + ] + [ + (builtin bls12_381_G2_uncompress) + (con + bytestring + #b67029fbf3ab8e62ab6b499f541537fc07d9466e668392df2bc19762d7dc48b64be09a448cd46dbfe21819a91cd0ab3205f1316ad1cc32853f3f1a1d06497f5cfbc2d753dfc01bff177adeb93f24d452045435dc6eb29f5610b66cd0dd3fb352 -- Q + ) + ] + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc.budget.expected new file mode 100644 index 00000000..b0cb7d4f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1481510453 +| mem: 3851}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc new file mode 100644 index 00000000..3f73758d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc @@ -0,0 +1,47 @@ +-- <[a]P,[b]Q> = <[ab]P,Q> +(program + 1.0.0 + [ + [ + (builtin bls12_381_finalVerify) + [ + [ + (builtin bls12_381_millerLoop) + [ + (builtin bls12_381_G1_uncompress) + (con + bytestring + #8baa4f3fcd895033f93494b040ccd7dfb77cb759cd2e150bfff4264873174509cd22230423b70896b17c8fc3660f6b21 -- [a]P + ) + ] + ] + [ + (builtin bls12_381_G2_uncompress) + (con + bytestring + #9906a15ff959b496f478dd17348b32c033236db5a7437768a30c5ce87d9b6adfa7bf2223a0721c93a92f33abac9b2faf00d25e48b0f3cc52595264ef9ad0aa7b81e20b3c8634d577883ff5fc2373a021a1e57826f420a74f3ce0fbd2dcf79415 -- [b]Q + ) + ] + ] + ] + [ + [ + (builtin bls12_381_millerLoop) + [ + (builtin bls12_381_G1_uncompress) + (con + bytestring + #b2bb2433441c452b78f5be911aa136dd2c886a9ac329cb6c805e50d5255891fcc389b1190432f16a109c6f431f0f8023 -- [ab]P + ) + ] + ] + [ + (builtin bls12_381_G2_uncompress) + (con + bytestring + #b67029fbf3ab8e62ab6b499f541537fc07d9466e668392df2bc19762d7dc48b64be09a448cd46dbfe21819a91cd0ab3205f1316ad1cc32853f3f1a1d06497f5cfbc2d753dfc01bff177adeb93f24d452045435dc6eb29f5610b66cd0dd3fb352 -- Q + ) + ] + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc.budget.expected new file mode 100644 index 00000000..b6c2e2d1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1097491548 +| mem: 2453}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc new file mode 100644 index 00000000..194f8ee3 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc @@ -0,0 +1,71 @@ +-- = +(program + 1.0.0 + [ + [ + (builtin bls12_381_finalVerify) + [ + [ + (builtin bls12_381_mulMlResult) + [ + [ + (builtin bls12_381_millerLoop) + [ + (builtin bls12_381_G1_uncompress) + (con + bytestring + #840463aa2f2cda89985b1f3f5eb43b9c29809765d2747d60734b19d6f90610effdfc500af7d458a3e78cee0945ddc669 -- P + ) + ] + ] + [ + (builtin bls12_381_G2_uncompress) + (con + bytestring + #a80f311db6f2fdc45404870f4c55b65a9a59a35efcfa2a7c595f3955226076bbaa33e403c0d4749495d9423b806f9dbe08cca770e08fa535daefb6dba2edb62f8b9aff6bae83bf48819bcdf98f07e79de8635e8521ddecae19b01a6777bc4684 -- [a]Q + ) + ] + ] + ] + [ + [ + (builtin bls12_381_millerLoop) + [ + (builtin bls12_381_G1_uncompress) + (con + bytestring + #840463aa2f2cda89985b1f3f5eb43b9c29809765d2747d60734b19d6f90610effdfc500af7d458a3e78cee0945ddc669 -- P + ) + ] + ] + [ + (builtin bls12_381_G2_uncompress) + (con + bytestring + #9906a15ff959b496f478dd17348b32c033236db5a7437768a30c5ce87d9b6adfa7bf2223a0721c93a92f33abac9b2faf00d25e48b0f3cc52595264ef9ad0aa7b81e20b3c8634d577883ff5fc2373a021a1e57826f420a74f3ce0fbd2dcf79415 -- [b]Q + ) + ] + ] + ] + ] + [ + [ + (builtin bls12_381_millerLoop) + [ + (builtin bls12_381_G1_uncompress) + (con + bytestring + #840463aa2f2cda89985b1f3f5eb43b9c29809765d2747d60734b19d6f90610effdfc500af7d458a3e78cee0945ddc669 -- P + ) + ] + ] + [ + (builtin bls12_381_G2_uncompress) + (con + bytestring + #a63be4a1a776cadc7fc2e2d823bcc905f8f9cb0ebe662360d28d9964b022a99ce34a48b2e93cfceebc9bc1d79a3338da03a41393717239e66d4db06a87510b99fe04b0840c87c4051030b25e56ba34248d9ed30c82e8e501a616097299eefd62 -- [a+b]Q + ) + ] + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc.budget.expected new file mode 100644 index 00000000..b0cb7d4f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1481510453 +| mem: 3851}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc new file mode 100644 index 00000000..7ae52d40 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc @@ -0,0 +1,47 @@ +-- <[a]P,[b]Q> = +(program + 1.0.0 + [ + [ + (builtin bls12_381_finalVerify) + [ + [ + (builtin bls12_381_millerLoop) + [ + (builtin bls12_381_G1_uncompress) + (con + bytestring + #8baa4f3fcd895033f93494b040ccd7dfb77cb759cd2e150bfff4264873174509cd22230423b70896b17c8fc3660f6b21 -- [a]P + ) + ] + ] + [ + (builtin bls12_381_G2_uncompress) + (con + bytestring + #9906a15ff959b496f478dd17348b32c033236db5a7437768a30c5ce87d9b6adfa7bf2223a0721c93a92f33abac9b2faf00d25e48b0f3cc52595264ef9ad0aa7b81e20b3c8634d577883ff5fc2373a021a1e57826f420a74f3ce0fbd2dcf79415 -- [b]Q + ) + ] + ] + ] + [ + [ + (builtin bls12_381_millerLoop) + [ + (builtin bls12_381_G1_uncompress) + (con + bytestring + #840463aa2f2cda89985b1f3f5eb43b9c29809765d2747d60734b19d6f90610effdfc500af7d458a3e78cee0945ddc669 -- P + ) + ] + ] + [ + (builtin bls12_381_G2_uncompress) + (con + bytestring + #82606f4c771ca685bfc1bb9c51c886d0daa0f63fbb0f6a24b512a1b9b92d401e556cbffdc204c0a85192c865ed73f8090da58ecd1690d5a3b236cc5d40a98988f9602a6d114edb59954ef4e21692f2d48219aeacb964604849336059ceece69f -- [ab]Q + ) + ] + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc.budget.expected new file mode 100644 index 00000000..b6c2e2d1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1097491548 +| mem: 2453}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc new file mode 100644 index 00000000..513c76c2 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc @@ -0,0 +1,46 @@ +-- <[a]P,[b]Q> = <[b]P,[a]Q> +(program 1.0.0 + [ + [ + (builtin bls12_381_finalVerify) + [ + [ + (builtin bls12_381_millerLoop) + [ + (builtin bls12_381_G1_uncompress) + (con + bytestring + #8baa4f3fcd895033f93494b040ccd7dfb77cb759cd2e150bfff4264873174509cd22230423b70896b17c8fc3660f6b21 -- [a]P + ) + ] + ] + [ + (builtin bls12_381_G2_uncompress) + (con + bytestring + #9906a15ff959b496f478dd17348b32c033236db5a7437768a30c5ce87d9b6adfa7bf2223a0721c93a92f33abac9b2faf00d25e48b0f3cc52595264ef9ad0aa7b81e20b3c8634d577883ff5fc2373a021a1e57826f420a74f3ce0fbd2dcf79415 -- [b]Q + ) + ] + ] + ] + [ + [ + (builtin bls12_381_millerLoop) + [ + (builtin bls12_381_G1_uncompress) + (con + bytestring + #a4a925cb9c0580c14cbc8ec54447eb20070336a61c349c6a64b0d87e4db89d77734021cd88e2da369bdd85c0518c66c4 -- [b]P + ) + ] + ] + [ + (builtin bls12_381_G2_uncompress) + (con + bytestring + #a80f311db6f2fdc45404870f4c55b65a9a59a35efcfa2a7c595f3955226076bbaa33e403c0d4749495d9423b806f9dbe08cca770e08fa535daefb6dba2edb62f8b9aff6bae83bf48819bcdf98f07e79de8635e8521ddecae19b01a6777bc4684 -- [a]Q + ) + ] + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc.budget.expected new file mode 100644 index 00000000..b6c2e2d1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1097491548 +| mem: 2453}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc new file mode 100644 index 00000000..e2a0816a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc @@ -0,0 +1,62 @@ +-- Check that a signature involving an agumentation string prepended to a message +-- is as expected. +(program + 1.0.0 + [ + [ + (builtin bls12_381_finalVerify) + [ + [ + (builtin bls12_381_millerLoop) + [ + (builtin bls12_381_G1_uncompress) + (con + bytestring + #83422fd1d8f134fbbc7ad2949a0b7c38dc1f85bfd398bc58ae824ad34ace68eaa49f438872ee22e90778513a91f9685e -- sig + ) + ] + ] + [ + (builtin bls12_381_G2_uncompress) + (con + bytestring + #93e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8 -- G2 generator + ) + ] + ] + ] + [ + [ + (builtin bls12_381_millerLoop) + [ + [ + (builtin bls12_381_G1_hashToGroup) + [ + [ + (builtin appendByteString) + (con + bytestring + #52616e646f6d2076616c756520666f722074657374206175672e20 -- aug: "Random value for test aug. " + ) + ] + (con bytestring #626c73742069732073756368206120626c617374) -- msg: "blst is such a blast" + + ] + ] + (con + bytestring + #424c535f5349475f424c53313233383147325f584d443a5348412d3235365f535357555f524f5f4e554c5f + -- DST: "BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_" + ) + ] + ] + [ + (builtin bls12_381_G2_uncompress) + (con + bytestring + #b756d6223a92609cccf660b6f37e6e34fbb23972fc3955710f9bb202cc84cffacd337792700ebcb4324a99c7e7c9ed6d0e1cfdce8cd879a35300957c69c524c5365f6f0a85130735f27510618bbea605a1d024bb2d3bee2a5d68a827406f11c7 -- pk + ) + ] + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc.budget.expected new file mode 100644 index 00000000..61775e81 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1097202228 +| mem: 3060}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc new file mode 100644 index 00000000..b678fd54 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc @@ -0,0 +1,35 @@ +-- Check that the procedure for using a DST greater than 255 bytes long gives the expected result. +(program + 1.0.0 + [ + [ + (builtin bls12_381_G1_equal) + [ + [ + (builtin bls12_381_G1_hashToGroup) + (con bytestring #54657374696e67206c61726765206473742e) -- msg: "Testing large dst." + ] + [ + (builtin sha2_256) + [ + [ + (builtin appendByteString) + (con bytestring #4832432d4f56455253495a452d4453542d) -- prefix: "H2C-OVERSIZE-DST-" + ] + (con + bytestring + #62f5804020e6a8e242c736d1c97bcd8262f91b88e1d70b00d10d5e315c8c6501ead0a7e367e5d394b9fcff9c15aa0f6a05e5085fdc56bcdee3865016f1c49b20e1e609a606eccabc9b9199a42345c25e06ae70028397f8fb95576f264239da3eb49629d5efeb1f1d74a3b1ac58608d893f98058f5ab870833489f5dfec52db5f92e70db05c9704cd9d644b1ae16aaafcc173d48db17e207d91308d3045b042b7241f87b8d42ac5df97d94fdf3f29d20ca2ae22c22e9c5b84b48d6daf1f7959c7c71d0169f370ebf2838479b3731885ff0d278deb632fcb83aef0ab593dddd4f5d21dac56abe08b8cb4aaf4235b1a292b91d6e8b90e39dc953c75fc460e7dd6d2bc8a372ac4efce161f5f18f861e67e5717c86805a05cc53ff493e91de2b85d3166b353f5bbc64bae0d2a4787 -- large_dst: random bytes + ) + ] + ] + ] + ] + [ + (builtin bls12_381_G1_uncompress) + (con + bytestring + #a16b5778b5b88519b6caf05921d0d9b8b94a33d1daaa0c7fbfa66d52e801a5e798fae840bb9608aa31712e0b1b3a054a -- output + ) + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc.budget.expected new file mode 100644 index 00000000..b9e77b91 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 107393818 +| mem: 1882}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc new file mode 100644 index 00000000..656eb7e8 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc @@ -0,0 +1,33 @@ +-- p+(q+r) = (p+q)+r for three random points on G1. +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_equal) + [ + [ + (builtin bls12_381_G1_add) + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] + [ + [ + (builtin bls12_381_G1_add) + (con bls12_381_G1_element 0x950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5) + ] + (con bls12_381_G1_element 0xb962fd0cc81048e0cf7557bf3e4b6edc5ab4bfb3dc87f83af428b6300727b139c404ab159bdf2eaea3f649903421537f) + ] + ] + ] + [ + (builtin bls12_381_G1_add) + [ + [ + (builtin bls12_381_G1_add) + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] + (con bls12_381_G1_element 0x950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5) + ] + (con bls12_381_G1_element 0xb962fd0cc81048e0cf7557bf3e4b6edc5ab4bfb3dc87f83af428b6300727b139c404ab159bdf2eaea3f649903421537f) + ] + ] +) + diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc.budget.expected new file mode 100644 index 00000000..32ffec68 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 4627448 +| mem: 2273}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc new file mode 100644 index 00000000..54d75b3c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc @@ -0,0 +1,22 @@ +-- p+q = q+p for two random points in G1. +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_equal) + [ + [ + (builtin bls12_381_G1_add) + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] + (con bls12_381_G1_element 0x950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5) + ] + ] + [ + [ + (builtin bls12_381_G1_add) + (con bls12_381_G1_element 0x950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5) + ] + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc.budget.expected new file mode 100644 index 00000000..1fb9099f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 2574778 +| mem: 1437}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc new file mode 100644 index 00000000..f2b27774 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc @@ -0,0 +1,10 @@ +-- Adding the zero element to a random point doesn't change it. +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_add) + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] + (con bls12_381_G1_element 0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc.budget.expected new file mode 100644 index 00000000..9f7b5788 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1042435 +| mem: 618}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc.expected new file mode 100644 index 00000000..67f6485e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G1_element + 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add/add.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add/add.uplc new file mode 100644 index 00000000..807a32bf --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add/add.uplc @@ -0,0 +1,10 @@ +-- Adding a random pair of points in G1 +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_add) + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] + (con bls12_381_G1_element 0x950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add/add.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add/add.uplc.budget.expected new file mode 100644 index 00000000..9f7b5788 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add/add.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1042435 +| mem: 618}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add/add.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add/add.uplc.expected new file mode 100644 index 00000000..233b768f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_add/add/add.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G1_element + 0xa4870e983a149bb1e7cc70fde907a2aa52302833bce4d62f679819022924e9caab52e3631d376d36d9692664b4cfbc22 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc new file mode 100644 index 00000000..90ee2269 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc @@ -0,0 +1,7 @@ +-- Check that compression of a random point in G1 succeeds and gives the expected result. +(program 1.0.0 + [ + (builtin bls12_381_G1_compress) + (con bls12_381_G1_element 0x950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc.budget.expected new file mode 100644 index 00000000..5be86b19 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 2828778 +| mem: 406}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc.expected new file mode 100644 index 00000000..a7fad2a0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bytestring + #950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc new file mode 100644 index 00000000..34b2ace7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc @@ -0,0 +1,10 @@ +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_equal) + (con bls12_381_G1_element 0x950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5) + ] + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] +) + diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc.budget.expected new file mode 100644 index 00000000..08bc3365 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 522108 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc.expected new file mode 100644 index 00000000..3ee9f07f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc new file mode 100644 index 00000000..c0653b78 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc @@ -0,0 +1,10 @@ +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_equal) + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] +) + diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc.budget.expected new file mode 100644 index 00000000..08bc3365 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 522108 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc new file mode 100644 index 00000000..03438c0e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc @@ -0,0 +1,23 @@ +-- Check that hashing different messages with the same DST gives different +-- results: this should return False. +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_equal) + [ + [ + (builtin bls12_381_G1_hashToGroup) + (con bytestring #8e) + ] + (con bytestring #0a) + ] + ] + [ + [ + (builtin bls12_381_G1_hashToGroup) + (con bytestring #81) + ] + (con bytestring #0a) + ] + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected new file mode 100644 index 00000000..54762c05 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 105733730 +| mem: 1437}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.expected new file mode 100644 index 00000000..3ee9f07f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc new file mode 100644 index 00000000..fa4446d6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc @@ -0,0 +1,10 @@ +-- Maximum length of DST is 255 bytes: this should be OK +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_hashToGroup) + (con bytestring #3f) + ] + (con bytestring #123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected new file mode 100644 index 00000000..f1b55d9e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 52621911 +| mem: 618}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.expected new file mode 100644 index 00000000..4108e2b1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G1_element + 0x931bd1f65dd2d34a55c93d82c20dcacd3a91afa5932fdd7fed06119f8574520c9609d337d680060b4bd2c59f0b60bb54 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc new file mode 100644 index 00000000..c26a6322 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc @@ -0,0 +1,10 @@ +-- Maximum length of DST is 255 bytes: this should fail +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_hashToGroup) + (con bytestring #3f) + ] + (con bytestring #123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890ff) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc new file mode 100644 index 00000000..be2ec780 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc @@ -0,0 +1,10 @@ +-- Check that hashing a random bytestring with an empty DST gives the expected result. +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_hashToGroup) + (con bytestring #8e) + ] + (con bytestring #) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected new file mode 100644 index 00000000..f1b55d9e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 52621911 +| mem: 618}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.expected new file mode 100644 index 00000000..6f6aa1a8 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G1_element + 0x9019067bf1fa5b2a7a40fb31a70c66f25a3de7e3ef42f8365c9b7963dc01e15a2e086df6d1a181b1d12811a520440909 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc new file mode 100644 index 00000000..143d8388 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc @@ -0,0 +1,23 @@ +-- Check that hashing the same message with different DSTs gives different +-- results: this should return False. +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_equal) + [ + [ + (builtin bls12_381_G1_hashToGroup) + (con bytestring #8e) + ] + (con bytestring #0a) + ] + ] + [ + [ + (builtin bls12_381_G1_hashToGroup) + (con bytestring #8e) + ] + (con bytestring #01) + ] + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected new file mode 100644 index 00000000..54762c05 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 105733730 +| mem: 1437}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.expected new file mode 100644 index 00000000..3ee9f07f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc new file mode 100644 index 00000000..2675d562 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc @@ -0,0 +1,10 @@ +-- Check that hashing a random bytestring gives the expected result. +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_hashToGroup) + (con bytestring #8e) + ] + (con bytestring #0a) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc.budget.expected new file mode 100644 index 00000000..f1b55d9e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 52621911 +| mem: 618}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc.expected new file mode 100644 index 00000000..b0e88897 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G1_element + 0xa45ddef02cdd86039be4b0a863cba70ea903194ea0489ce619c6276175839d62eea72b095d6566067f4a44b85614f199 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc new file mode 100644 index 00000000..92d3c7a9 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc @@ -0,0 +1,13 @@ +-- Check that adding a random point to its negative gives the zero element. +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_add) + (con bls12_381_G1_element 0x950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5) + ] + [ + (builtin bls12_381_G1_neg) + (con bls12_381_G1_element 0x950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5) + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc.budget.expected new file mode 100644 index 00000000..6aac7dde --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1342364 +| mem: 836}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc.expected new file mode 100644 index 00000000..2ea2f53f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G1_element + 0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc new file mode 100644 index 00000000..f66ddeda --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc @@ -0,0 +1,7 @@ +-- The negative of the zero point is the zero point. +(program 1.0.0 + [ + (builtin bls12_381_G1_neg) + (con bls12_381_G1_element 0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc.budget.expected new file mode 100644 index 00000000..c4afa957 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 316029 +| mem: 418}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc.expected new file mode 100644 index 00000000..2ea2f53f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G1_element + 0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc new file mode 100644 index 00000000..7bc37d59 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc @@ -0,0 +1,7 @@ +-- Check that negating a random point in G1 gives the expected result. +(program 1.0.0 + [ + (builtin bls12_381_G1_neg) + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc.budget.expected new file mode 100644 index 00000000..c4afa957 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 316029 +| mem: 418}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc.expected new file mode 100644 index 00000000..c5383961 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G1_element + 0x8bd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc new file mode 100644 index 00000000..0701e6bf --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc @@ -0,0 +1,22 @@ +-- 2157p + 2157q for random points p and q in G1. This should give the same result as muladd. +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_add) + [ + [ + (builtin bls12_381_G1_scalarMul) + (con integer 2157) + ] + (con bls12_381_G1_element 0x950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5) + ] + ] + [ + [ + (builtin bls12_381_G1_scalarMul) + (con integer 2157) + ] + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc.budget.expected new file mode 100644 index 00000000..db0a0d06 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 154054183 +| mem: 1454}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc.expected new file mode 100644 index 00000000..8a8440b5 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G1_element + 0x8cc84679c6c870408169a656c245a2ab9ccc46598769b19f07711c18624284d1bfa33667cac7b99a12e058abfd14ef88 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc new file mode 100644 index 00000000..f4858c59 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc @@ -0,0 +1,10 @@ +-- Multiplication by the zero scalar gives the zero point of G1. +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_scalarMul) + (con integer 0) + ] + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc.budget.expected new file mode 100644 index 00000000..1f875e2e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 76521974 +| mem: 618}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc.expected new file mode 100644 index 00000000..2ea2f53f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G1_element + 0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc new file mode 100644 index 00000000..d1718d8e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc @@ -0,0 +1,10 @@ +-- Scalar multiplication by 1 leaves a random point unchanged. +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_scalarMul) + (con integer 1) + ] + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc.budget.expected new file mode 100644 index 00000000..1f875e2e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 76521974 +| mem: 618}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc.expected new file mode 100644 index 00000000..67f6485e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G1_element + 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc new file mode 100644 index 00000000..4f179b65 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc @@ -0,0 +1,22 @@ +-- 19p+25p for a random point p in G1. This should give the same result as mul44. +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_add) + [ + [ + (builtin bls12_381_G1_scalarMul) + (con integer 19) + ] + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] + ] + [ + [ + (builtin bls12_381_G1_scalarMul) + (con integer 25) + ] + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc.budget.expected new file mode 100644 index 00000000..db0a0d06 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 154054183 +| mem: 1454}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc.expected new file mode 100644 index 00000000..de8b77d3 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G1_element + 0x8d9e9f6adcea14e8d38221bb3cfe4afdcc59b86e9d3b0093c0ef8252d5d90dfc5d73c9e9d352b9a54b46d35e7ff4d58c + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc new file mode 100644 index 00000000..968a9153 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc @@ -0,0 +1,10 @@ +-- Check that multiplication by the scalar 44 gives the expected result. +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_scalarMul) + (con integer 44) + ] + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc.budget.expected new file mode 100644 index 00000000..1f875e2e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 76521974 +| mem: 618}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc.expected new file mode 100644 index 00000000..de8b77d3 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G1_element + 0x8d9e9f6adcea14e8d38221bb3cfe4afdcc59b86e9d3b0093c0ef8252d5d90dfc5d73c9e9d352b9a54b46d35e7ff4d58c + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc new file mode 100644 index 00000000..8e6057a1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc @@ -0,0 +1,16 @@ +-- 4*(11*p) for a point in G1. This should give the same result as mul44. +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_scalarMul) + (con integer 4) + ] + [ + [ + (builtin bls12_381_G1_scalarMul) + (con integer 11) + ] + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc.budget.expected new file mode 100644 index 00000000..aebe792f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 153027848 +| mem: 1036}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc.expected new file mode 100644 index 00000000..de8b77d3 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G1_element + 0x8d9e9f6adcea14e8d38221bb3cfe4afdcc59b86e9d3b0093c0ef8252d5d90dfc5d73c9e9d352b9a54b46d35e7ff4d58c + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc new file mode 100644 index 00000000..1e28131d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc @@ -0,0 +1,16 @@ +-- n(p+q) = np + nq (n scalar, p and q random points in G1). +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_scalarMul) + (con integer 2157) + ] + [ + [ + (builtin bls12_381_G1_add) + (con bls12_381_G1_element 0x950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5) + ] + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc.budget.expected new file mode 100644 index 00000000..e76d6336 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 77548309 +| mem: 1036}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc.expected new file mode 100644 index 00000000..8a8440b5 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G1_element + 0x8cc84679c6c870408169a656c245a2ab9ccc46598769b19f07711c18624284d1bfa33667cac7b99a12e058abfd14ef88 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc new file mode 100644 index 00000000..b15f84a5 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc @@ -0,0 +1,10 @@ +-- Check that the result of multiplying by -1 is as expected. +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_scalarMul) + (con integer -1) + ] + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc.budget.expected new file mode 100644 index 00000000..1f875e2e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 76521974 +| mem: 618}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc.expected new file mode 100644 index 00000000..c5383961 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G1_element + 0x8bd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc new file mode 100644 index 00000000..f9e5a077 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc @@ -0,0 +1,10 @@ +-- Multiplying a random point in G1 by the scalar -44 gives the expected result. +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_scalarMul) + (con integer -44) + ] + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc.budget.expected new file mode 100644 index 00000000..1f875e2e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 76521974 +| mem: 618}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc.expected new file mode 100644 index 00000000..e96e2fa1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G1_element + 0xad9e9f6adcea14e8d38221bb3cfe4afdcc59b86e9d3b0093c0ef8252d5d90dfc5d73c9e9d352b9a54b46d35e7ff4d58c + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc new file mode 100644 index 00000000..974dc102 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc @@ -0,0 +1,13 @@ +-- Scalar multiplication by the group size should give you the zero element of the group. +(program 1.0.0 +[ + [ (builtin bls12_381_G1_equal) + [ + (builtin bls12_381_G1_scalarMul) + (con integer 52435875175126190479447740508185965837690552500527637822603658699938581184513 ) + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] + ] + (con bls12_381_G1_element 0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) +] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected new file mode 100644 index 00000000..c9db227f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 77054586 +| mem: 1019}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc new file mode 100644 index 00000000..8b027758 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc @@ -0,0 +1,23 @@ +-- Scalar multiplication should be periodic modulo the group size +(program 1.0.0 + [ + [ + (builtin bls12_381_G1_equal) + [ + [ + (builtin bls12_381_G1_scalarMul) + [ + [ (builtin addInteger) (con integer 123) ] + (con integer 52435875175126190479447740508185965837690552500527637822603658699938581184513) + ] + ] + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] + ] + [ + [ (builtin bls12_381_G1_scalarMul) (con integer 123) ] + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] + ] +) + diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected new file mode 100644 index 00000000..4c923a3d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 153726928 +| mem: 1842}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc new file mode 100644 index 00000000..8aeb4591 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc @@ -0,0 +1,27 @@ +-- Scalar multiplication should be periodic modulo the group size +(program + 1.0.0 + [ + [ + (builtin bls12_381_G1_equal) + [ + [ + (builtin bls12_381_G1_scalarMul) + [ + [ (builtin addInteger) (con integer 123) ] + [ + [ (builtin multiplyInteger) (con integer 987654321) ] + (con integer 52435875175126190479447740508185965837690552500527637822603658699938581184513) + ] + ] + ] + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] + ] + [ + [ (builtin bls12_381_G1_scalarMul) (con integer 123) ] + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] + ] +) + diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected new file mode 100644 index 00000000..b0c23c98 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 153892726 +| mem: 2248}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc new file mode 100644 index 00000000..250e6fa3 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc @@ -0,0 +1,27 @@ +-- Scalar multiplication should be periodic modulo the group size +(program + 1.0.0 + [ + [ + (builtin bls12_381_G1_equal) + [ + [ + (builtin bls12_381_G1_scalarMul) + [ + [ (builtin addInteger) (con integer 123) ] + [ + [ (builtin multiplyInteger) (con integer -987654321) ] + (con integer 52435875175126190479447740508185965837690552500527637822603658699938581184513) + ] + ] + ] + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] + ] + [ + [ (builtin bls12_381_G1_scalarMul) (con integer 123) ] + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] + ] +) + diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected new file mode 100644 index 00000000..b0c23c98 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 153892726 +| mem: 2248}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-1/bad-zero-1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-1/bad-zero-1.uplc new file mode 100644 index 00000000..24e3ca33 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-1/bad-zero-1.uplc @@ -0,0 +1,7 @@ +-- This has the infinity bit set but not the compression bit, and so is invalid. +(program 0.0.0 + [ + (builtin bls12_381_G1_uncompress) + (con bytestring #400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-1/bad-zero-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-1/bad-zero-1.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-1/bad-zero-1.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-1/bad-zero-1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-1/bad-zero-1.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-1/bad-zero-1.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-2/bad-zero-2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-2/bad-zero-2.uplc new file mode 100644 index 00000000..122d86c4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-2/bad-zero-2.uplc @@ -0,0 +1,8 @@ +-- This is the zero point of G1, but with the sign bit set. It should fail to uncompress. +(program 0.0.0 + [ + (builtin bls12_381_G1_uncompress) + (con bytestring #e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) + ] +) + \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-2/bad-zero-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-2/bad-zero-2.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-2/bad-zero-2.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-2/bad-zero-2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-2/bad-zero-2.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-2/bad-zero-2.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-3/bad-zero-3.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-3/bad-zero-3.uplc new file mode 100644 index 00000000..5bfda391 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-3/bad-zero-3.uplc @@ -0,0 +1,8 @@ +-- This is the zero point of G1, but with a random bit set in the body. It +-- should fail to uncompress. +(program 0.0.0 + [ + (builtin bls12_381_G1_uncompress) + (con bytestring #c00000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-3/bad-zero-3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-3/bad-zero-3.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-3/bad-zero-3.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-3/bad-zero-3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-3/bad-zero-3.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/bad-zero-3/bad-zero-3.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/off-curve/off-curve.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/off-curve/off-curve.uplc new file mode 100644 index 00000000..f8ffadf2 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/off-curve/off-curve.uplc @@ -0,0 +1,7 @@ +-- This contains a value which is not the x-coordinate of a point on the E1 curve. +(program 0.0.0 + [ + (builtin bls12_381_G1_uncompress) + (con bytestring #a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/off-curve/off-curve.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/off-curve/off-curve.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/off-curve/off-curve.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/off-curve/off-curve.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/off-curve/off-curve.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/off-curve/off-curve.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit1-clear/on-curve-bit1-clear.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit1-clear/on-curve-bit1-clear.uplc new file mode 100644 index 00000000..547ea7b7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit1-clear/on-curve-bit1-clear.uplc @@ -0,0 +1,8 @@ +-- This value was obtained by hashing 0x0102030405 to G1 but has had the +-- compression bit cleared, so uncompression should fail. +(program 0.0.0 + [ + (builtin bls12_381_G1_uncompress) + (con bytestring #21e9a0c68985059bd25a5ef05b351ca22f7d7c19e37928583ae12a1f4939440ff754cfd85b23df4a54f66c7089db6deb) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit1-clear/on-curve-bit1-clear.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit1-clear/on-curve-bit1-clear.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit1-clear/on-curve-bit1-clear.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit1-clear/on-curve-bit1-clear.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit1-clear/on-curve-bit1-clear.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit1-clear/on-curve-bit1-clear.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc new file mode 100644 index 00000000..f7611435 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc @@ -0,0 +1,9 @@ +-- This value was obtained by hashing 0x0102030405 to G1. The sign bit was set +-- but has been cleared: this negates the point, so uncompression should still +-- succeed. +(program 0.0.0 + [ + (builtin bls12_381_G1_uncompress) + (con bytestring #81e9a0c68985059bd25a5ef05b351ca22f7d7c19e37928583ae12a1f4939440ff754cfd85b23df4a54f66c7089db6deb) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected new file mode 100644 index 00000000..848dd609 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 52996222 +| mem: 418}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected new file mode 100644 index 00000000..d66818b0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected @@ -0,0 +1,7 @@ +(program + 0.0.0 + (con + bls12_381_G1_element + 0x81e9a0c68985059bd25a5ef05b351ca22f7d7c19e37928583ae12a1f4939440ff754cfd85b23df4a54f66c7089db6deb + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc new file mode 100644 index 00000000..c730b299 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc @@ -0,0 +1,8 @@ +-- This value was obtained by hashing 0x0102030405 to G1. No changes have been +-- made, so uncompression should succeed. +(program 0.0.0 + [ + (builtin bls12_381_G1_uncompress) + (con bytestring #a1e9a0c68985059bd25a5ef05b351ca22f7d7c19e37928583ae12a1f4939440ff754cfd85b23df4a54f66c7089db6deb) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected new file mode 100644 index 00000000..848dd609 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 52996222 +| mem: 418}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.expected new file mode 100644 index 00000000..54e30965 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.expected @@ -0,0 +1,9 @@ +-- This value was obtained by hashing 0x0102030405 to G2 and has the compression +-- bit set, so uncompression should succeed. +(program + 0.0.0 + (con + bls12_381_G1_element + 0xa1e9a0c68985059bd25a5ef05b351ca22f7d7c19e37928583ae12a1f4939440ff754cfd85b23df4a54f66c7089db6deb + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc new file mode 100644 index 00000000..64ac2457 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc @@ -0,0 +1,10 @@ +-- This checks that the uncompression function fails on a valid *serialised* G1 +-- point (obtained by hashing 0x0102030405 onto G1). The deserialisation +-- function in the blst library can handle both serialised and compressed +-- points, but we should fail on the former. +(program 0.0.0 + [ (builtin bls12_381_G1_uncompress) + (con bytestring + #01e9a0c68985059bd25a5ef05b351ca22f7d7c19e37928583ae12a1f4939440ff754cfd85b23df4a54f66c7089db6deb12ae8470d881eb628dfcf4bb083fb8a6968d907a0c265f6d06e04b05a19418d395d3e0c115430f88e7156822904ef5bf) +] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/out-of-group/out-of-group.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/out-of-group/out-of-group.uplc new file mode 100644 index 00000000..2c34b8e2 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/out-of-group/out-of-group.uplc @@ -0,0 +1,8 @@ +-- This contains a value which is the x-coordinate of a point which lies on the +-- E1 curve but not the G1 subgroup. +(program 0.0.0 + [ + (builtin bls12_381_G1_uncompress) + (con bytestring #a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/out-of-group/out-of-group.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/out-of-group/out-of-group.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/out-of-group/out-of-group.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/out-of-group/out-of-group.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/out-of-group/out-of-group.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/out-of-group/out-of-group.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/too-long/too-long.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/too-long/too-long.uplc new file mode 100644 index 00000000..0779c332 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/too-long/too-long.uplc @@ -0,0 +1,8 @@ +-- The bytestring is the compressed version of the G1 zero point, but extended +-- to 49 bytes. +(program 0.0.0 + [ + (builtin bls12_381_G1_uncompress) + (con bytestring #c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/too-long/too-long.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/too-long/too-long.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/too-long/too-long.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/too-long/too-long.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/too-long/too-long.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/too-long/too-long.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/too-short/too-short.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/too-short/too-short.uplc new file mode 100644 index 00000000..98d9f22f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/too-short/too-short.uplc @@ -0,0 +1,7 @@ +-- The bytestring is the compressed version of the G1 zero point, but truncated to 47 bytes. +(program 0.0.0 + [ + (builtin bls12_381_G1_uncompress) + (con bytestring #c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/too-short/too-short.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/too-short/too-short.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/too-short/too-short.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/too-short/too-short.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/too-short/too-short.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/too-short/too-short.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc new file mode 100644 index 00000000..127c894d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc @@ -0,0 +1,7 @@ +-- The zero element of G1 uncompresses correctly. +(program 0.0.0 + [ + (builtin bls12_381_G1_uncompress) + (con bytestring #c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc.budget.expected new file mode 100644 index 00000000..848dd609 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 52996222 +| mem: 418}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc.expected new file mode 100644 index 00000000..63a548b8 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc.expected @@ -0,0 +1,7 @@ +(program + 0.0.0 + (con + bls12_381_G1_element + 0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc new file mode 100644 index 00000000..a0ee7305 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc @@ -0,0 +1,37 @@ +-- p+(q+r) = (p+q)+r for three random points on G2. +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_equal) + [ + [ + (builtin bls12_381_G2_add) + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + [ + [ + (builtin bls12_381_G2_add) + (con bls12_381_G2_element 0x8310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a +) + ] + (con bls12_381_G2_element 0xa69d86e011cf692e51ac2031201c27aa06a8f902068fcb98f284d9d925c6502bb0821ba4f49ece3d1db06cd9556f690a117e51df792f7c1d1f5f22b91c3155e9ef2bc43f24ab0a62d8606b3262a117c5635326ae8c9ad897980db6bf4849f903 +) + ] + ] + ] + [ + (builtin bls12_381_G2_add) + [ + [ + (builtin bls12_381_G2_add) + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + (con bls12_381_G2_element 0x8310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a +) + ] + (con bls12_381_G2_element 0xa69d86e011cf692e51ac2031201c27aa06a8f902068fcb98f284d9d925c6502bb0821ba4f49ece3d1db06cd9556f690a117e51df792f7c1d1f5f22b91c3155e9ef2bc43f24ab0a62d8606b3262a117c5635326ae8c9ad897980db6bf4849f903 +) + ] + ] +) + diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc.budget.expected new file mode 100644 index 00000000..a882afdf --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 9220466 +| mem: 2345}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc new file mode 100644 index 00000000..441b8699 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc @@ -0,0 +1,24 @@ +-- p+q = q+p for two random points in G2. +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_equal) + [ + [ + (builtin bls12_381_G2_add) + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1 +) + ] + (con bls12_381_G2_element 0x8310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a) + ] + ] + [ + [ + (builtin bls12_381_G2_add) + (con bls12_381_G2_element 0x8310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a) + ] + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1 +) + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc.budget.expected new file mode 100644 index 00000000..0b800edf --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 5100794 +| mem: 1473}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc new file mode 100644 index 00000000..18adedbe --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc @@ -0,0 +1,10 @@ +-- Adding the zero element to a random point doesn't change it. +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_add) + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + (con bls12_381_G2_element 0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc.budget.expected new file mode 100644 index 00000000..cfcaf783 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 2075936 +| mem: 636}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc.expected new file mode 100644 index 00000000..fa158051 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G2_element + 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add/add.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add/add.uplc new file mode 100644 index 00000000..7eb51f91 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add/add.uplc @@ -0,0 +1,10 @@ +-- Check that adding two random points on G2 gives the expected result. +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_add) + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + (con bls12_381_G2_element 0x8310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add/add.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add/add.uplc.budget.expected new file mode 100644 index 00000000..cfcaf783 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add/add.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 2075936 +| mem: 636}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add/add.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add/add.uplc.expected new file mode 100644 index 00000000..5cecee55 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_add/add/add.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G2_element + 0xb5cf6c76309d98a38950948ce6768309e2e92561762734caaaab65077e1279faff6bba6f9f21bbb3b3fa4ee55aa1332d0f4b3b9a6fa4848e0bf7ae0d38fdc1f1c1908b953ee2b47b88a595b10431acab16522d12a785e27692fc7e0ffa33be07 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc new file mode 100644 index 00000000..86a22550 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc @@ -0,0 +1,7 @@ +-- Check that compression of a random point in G2 succeeds and gives the expected result. +(program 1.0.0 + [ + (builtin bls12_381_G2_compress) + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc.budget.expected new file mode 100644 index 00000000..6283d4dc --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 3276019 +| mem: 412}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc.expected new file mode 100644 index 00000000..0230ddae --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bytestring + #b0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc new file mode 100644 index 00000000..6c90ac74 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc @@ -0,0 +1,10 @@ +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_equal) + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + (con bls12_381_G2_element 0x8310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a) + ] +) + diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc.budget.expected new file mode 100644 index 00000000..b8020c3e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 981122 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc.expected new file mode 100644 index 00000000..3ee9f07f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc new file mode 100644 index 00000000..c4007b4d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc @@ -0,0 +1,10 @@ +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_equal) + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] +) + diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc.budget.expected new file mode 100644 index 00000000..b8020c3e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 981122 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc new file mode 100644 index 00000000..417ac4fa --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc @@ -0,0 +1,23 @@ +-- Check that hashing different messages with the same DST gives different +-- results: this should return False. +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_equal) + [ + [ + (builtin bls12_381_G2_hashToGroup) + (con bytestring #8e) + ] + (con bytestring #0a) + ] + ] + [ + [ + (builtin bls12_381_G2_hashToGroup) + (con bytestring #81) + ] + (con bytestring #0a) + ] + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected new file mode 100644 index 00000000..110e767a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 334953422 +| mem: 1473}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.expected new file mode 100644 index 00000000..3ee9f07f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc new file mode 100644 index 00000000..b9ba3819 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc @@ -0,0 +1,10 @@ +-- Maximum length of DST is 255 bytes: this should be OK +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_hashToGroup) + (con bytestring #3f) + ] + (con bytestring #123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected new file mode 100644 index 00000000..49dfc056 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 167002250 +| mem: 636}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.expected new file mode 100644 index 00000000..adc5ec3b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G2_element + 0x9028b507444b4283faf2f85e7f7d3890b67e9bcf84c7de2f75fe603996ab1b12a25b4637d68f310b7bd6d47ec11e3fa60d0f8f9d1dc880746105b4d7e9b5bba86abfdef96dfda303b1fb00b5d866b5d7f67883efb39efca301ae44a7f1322a33 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc new file mode 100644 index 00000000..c0178489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc @@ -0,0 +1,10 @@ +-- Maximum length of DST is 255 bytes: this should fail +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_hashToGroup) + (con bytestring #3f) + ] + (con bytestring #123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890ff) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-256/hash-dst-len-256.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc new file mode 100644 index 00000000..ab6c5797 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc @@ -0,0 +1,10 @@ +-- Check that hashing a random bytestring with an empty DST gives the expected result. +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_hashToGroup) + (con bytestring #8e) + ] + (con bytestring #) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected new file mode 100644 index 00000000..49dfc056 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 167002250 +| mem: 636}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.expected new file mode 100644 index 00000000..8201dfc7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G2_element + 0x8785334bbccf9f7a1bc656fcbcaf9901521cc09a076ff69d40e467082b605d668219747dfec37c798c97b2c7f28ec90117c4ccfc54ef3cc3c0038951c4969a3c0b3fb842a78103586657428ab38d719c9d3314de566cd95540aaccf7afd48821 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc new file mode 100644 index 00000000..08b234b6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc @@ -0,0 +1,23 @@ +-- Check that hashing the same message with different DSTs gives different +-- results: this should return False. +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_equal) + [ + [ + (builtin bls12_381_G2_hashToGroup) + (con bytestring #8e) + ] + (con bytestring #0a) + ] + ] + [ + [ + (builtin bls12_381_G2_hashToGroup) + (con bytestring #8e) + ] + (con bytestring #01) + ] + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected new file mode 100644 index 00000000..110e767a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 334953422 +| mem: 1473}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.expected new file mode 100644 index 00000000..3ee9f07f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc new file mode 100644 index 00000000..ec831773 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc @@ -0,0 +1,10 @@ +-- Check that hashing a random bytestring gives the expected result. +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_hashToGroup) + (con bytestring #8e) + ] + (con bytestring #0a) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc.budget.expected new file mode 100644 index 00000000..49dfc056 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 167002250 +| mem: 636}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc.expected new file mode 100644 index 00000000..6c0812e6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G2_element + 0xabdb064dbaa986d9609796d7a80ef07f719f99fa5d9876e01f9298793d4c7e7ba9b2c55da6896f90693ad76a093d280118a4c24df9a387eaf85b15927365a110fe5256f53ddf8bef4069fe761d8215d4a73ec980f1a801dbaba25146b6ca7e07 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc new file mode 100644 index 00000000..470c530a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc @@ -0,0 +1,13 @@ +-- Check that adding a random point to its negative gives the zero element. +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_add) + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + [ + (builtin bls12_381_G2_neg) + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc.budget.expected new file mode 100644 index 00000000..ccb1290a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 2392482 +| mem: 872}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc.expected new file mode 100644 index 00000000..145261a1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G2_element + 0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc new file mode 100644 index 00000000..56cc6803 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc @@ -0,0 +1,7 @@ +-- The negative of the zero point is the zero point. +(program 1.0.0 + [ + (builtin bls12_381_G2_neg) + (con bls12_381_G2_element 0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc.budget.expected new file mode 100644 index 00000000..47508a54 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 332646 +| mem: 436}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc.expected new file mode 100644 index 00000000..145261a1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G2_element + 0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc new file mode 100644 index 00000000..1894886a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc @@ -0,0 +1,7 @@ +-- Check that hashing a random bytestring gives the expected result. +(program 1.0.0 + [ + (builtin bls12_381_G2_neg) + (con bls12_381_G2_element 0x8310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc.budget.expected new file mode 100644 index 00000000..47508a54 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 332646 +| mem: 436}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc.expected new file mode 100644 index 00000000..cb37047e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G2_element + 0xa310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc new file mode 100644 index 00000000..0b8eb227 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc @@ -0,0 +1,22 @@ +-- 2157p + 2157q for random points p and q in G2. This should give the same result as muladd. +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_add) + [ + [ + (builtin bls12_381_G2_scalarMul) + (con integer 2157) + ] + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + ] + [ + [ + (builtin bls12_381_G2_scalarMul) + (con integer 2157) + ] + (con bls12_381_G2_element 0x8310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a) + ] + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc.budget.expected new file mode 100644 index 00000000..8bb4bcff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 318699662 +| mem: 1508}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc.expected new file mode 100644 index 00000000..284acd1f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G2_element + 0xb8a335cdbb3de744ba2b6bb3c9ad9c209a7f33a1453c2ed0460e188c1f31f185e359a62727fe1d8ba5c931d75ef644e50173e5255b62194677fb67323ce42bac5c6b1b077e682df3aabca1caee2f640db1fed0b4ad511562f7c54d84ea76debc + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc new file mode 100644 index 00000000..f8cad427 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc @@ -0,0 +1,10 @@ +-- Multiplication by the zero scalar gives the zero point of G2. +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_scalarMul) + (con integer 0) + ] + (con bls12_381_G2_element 0x8310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc.budget.expected new file mode 100644 index 00000000..faf47777 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 158327963 +| mem: 636}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc.expected new file mode 100644 index 00000000..145261a1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G2_element + 0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc new file mode 100644 index 00000000..f63ae4a7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc @@ -0,0 +1,10 @@ +-- Scalar multiplication by 1 leaves a random point unchanged. +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_scalarMul) + (con integer 1) + ] + (con bls12_381_G2_element 0x8310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc.budget.expected new file mode 100644 index 00000000..faf47777 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 158327963 +| mem: 636}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc.expected new file mode 100644 index 00000000..a89b74d0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G2_element + 0x8310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc new file mode 100644 index 00000000..545d5e60 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc @@ -0,0 +1,22 @@ +-- 19p+25p for a random point p in G2. This should give the same result as mul44. +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_add) + [ + [ + (builtin bls12_381_G2_scalarMul) + (con integer 19) + ] + (con bls12_381_G2_element 0x8310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a) + ] + ] + [ + [ + (builtin bls12_381_G2_scalarMul) + (con integer 25) + ] + (con bls12_381_G2_element 0x8310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a) + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc.budget.expected new file mode 100644 index 00000000..8bb4bcff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 318699662 +| mem: 1508}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc.expected new file mode 100644 index 00000000..3597841c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G2_element + 0xaa2a95bc9936c61f5039cc6fbbe0e25fa8b1528ea18c5be09c93ed941d1c9052597086b8d3b3b5fbbd110ce389378c5414efd310de2120a7efbaaf70d01f5b80835118c1f39a4273a10f1f2a4af0ed33a7c17fba4c8e3f7cb08a1d97e82d5611 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc new file mode 100644 index 00000000..7c7a68d7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc @@ -0,0 +1,10 @@ +-- Check that multiplication by the scalar 44 gives the expected result. +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_scalarMul) + (con integer 44) + ] + (con bls12_381_G2_element 0x8310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc.budget.expected new file mode 100644 index 00000000..faf47777 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 158327963 +| mem: 636}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc.expected new file mode 100644 index 00000000..3597841c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G2_element + 0xaa2a95bc9936c61f5039cc6fbbe0e25fa8b1528ea18c5be09c93ed941d1c9052597086b8d3b3b5fbbd110ce389378c5414efd310de2120a7efbaaf70d01f5b80835118c1f39a4273a10f1f2a4af0ed33a7c17fba4c8e3f7cb08a1d97e82d5611 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc new file mode 100644 index 00000000..a85dfe79 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc @@ -0,0 +1,16 @@ +-- 4*(11*p) for a point in G2. This should give the same result as mul44. +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_scalarMul) + (con integer 4) + ] + [ + [ + (builtin bls12_381_G2_scalarMul) + (con integer 11) + ] + (con bls12_381_G2_element 0x8310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a) + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc.budget.expected new file mode 100644 index 00000000..ab0d8622 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 316639826 +| mem: 1072}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc.expected new file mode 100644 index 00000000..3597841c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G2_element + 0xaa2a95bc9936c61f5039cc6fbbe0e25fa8b1528ea18c5be09c93ed941d1c9052597086b8d3b3b5fbbd110ce389378c5414efd310de2120a7efbaaf70d01f5b80835118c1f39a4273a10f1f2a4af0ed33a7c17fba4c8e3f7cb08a1d97e82d5611 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc new file mode 100644 index 00000000..5d37d126 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc @@ -0,0 +1,16 @@ +-- n(p+q) = np + nq (n scalar, p and q random points in G2). +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_scalarMul) + (con integer 2157) + ] + [ + [ + (builtin bls12_381_G2_add) + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + (con bls12_381_G2_element 0x8310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a) + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc.budget.expected new file mode 100644 index 00000000..30aea4fb --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 160387799 +| mem: 1072}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc.expected new file mode 100644 index 00000000..284acd1f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G2_element + 0xb8a335cdbb3de744ba2b6bb3c9ad9c209a7f33a1453c2ed0460e188c1f31f185e359a62727fe1d8ba5c931d75ef644e50173e5255b62194677fb67323ce42bac5c6b1b077e682df3aabca1caee2f640db1fed0b4ad511562f7c54d84ea76debc + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc new file mode 100644 index 00000000..41555d76 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc @@ -0,0 +1,10 @@ +-- Check that the result of multiplying by -1 is as expected. +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_scalarMul) + (con integer -1) + ] + (con bls12_381_G2_element 0x8310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc.budget.expected new file mode 100644 index 00000000..faf47777 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 158327963 +| mem: 636}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc.expected new file mode 100644 index 00000000..cb37047e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G2_element + 0xa310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc new file mode 100644 index 00000000..dc2f11a7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc @@ -0,0 +1,10 @@ +-- Multiplying a random point in G2 by the scalar -44 gives the expected result. +(program 1.0.0 + [ + [ + (builtin bls12_381_G2_scalarMul) + (con integer -44) + ] + (con bls12_381_G2_element 0x8310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc.budget.expected new file mode 100644 index 00000000..faf47777 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 158327963 +| mem: 636}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc.expected new file mode 100644 index 00000000..22aaa867 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bls12_381_G2_element + 0x8a2a95bc9936c61f5039cc6fbbe0e25fa8b1528ea18c5be09c93ed941d1c9052597086b8d3b3b5fbbd110ce389378c5414efd310de2120a7efbaaf70d01f5b80835118c1f39a4273a10f1f2a4af0ed33a7c17fba4c8e3f7cb08a1d97e82d5611 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc new file mode 100644 index 00000000..b9c3fc15 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc @@ -0,0 +1,14 @@ +-- Scalar multiplication by the group size should give you the zero element of the group. +(program 1.0.0 +[ + [ (builtin bls12_381_G2_equal) + [ + (builtin bls12_381_G2_scalarMul) + (con integer 52435875175126190479447740508185965837690552500527637822603658699938581184513 ) + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + ] + (con bls12_381_G2_element + 0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) +] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected new file mode 100644 index 00000000..50c357f3 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 159372632 +| mem: 1037}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc new file mode 100644 index 00000000..134e98d0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc @@ -0,0 +1,26 @@ +-- Scalar multiplication should be periodic modulo the group size +(program + 1.0.0 + [ + [ + (builtin bls12_381_G2_equal) + [ + [ + (builtin bls12_381_G2_scalarMul) + [ + [ (builtin addInteger) (con integer 123) ] + (con integer 52435875175126190479447740508185965837690552500527637822603658699938581184513) + ] + ] + (con bls12_381_G2_element + 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + ] + [ + [ (builtin bls12_381_G2_scalarMul) (con integer 123) ] + (con bls12_381_G2_element + 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + ] +) + diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected new file mode 100644 index 00000000..8f5ab7a5 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 317850963 +| mem: 1878}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc new file mode 100644 index 00000000..0218e359 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc @@ -0,0 +1,29 @@ +-- Scalar multiplication should be periodic modulo the group size +(program + 1.0.0 + [ + [ + (builtin bls12_381_G2_equal) + [ + [ + (builtin bls12_381_G2_scalarMul) + [ + [ (builtin addInteger) (con integer 123) ] + [ + [ (builtin multiplyInteger) (con integer 987654321) ] + (con integer 52435875175126190479447740508185965837690552500527637822603658699938581184513) + ] + ] + ] + (con bls12_381_G2_element + 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + ] + [ + [ (builtin bls12_381_G2_scalarMul) (con integer 123) ] + (con bls12_381_G2_element + 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + ] +) + diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected new file mode 100644 index 00000000..d51fb799 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 318034442 +| mem: 2284}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc new file mode 100644 index 00000000..5bb2845d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc @@ -0,0 +1,29 @@ +-- Scalar multiplication should be periodic modulo the group size +(program + 1.0.0 + [ + [ + (builtin bls12_381_G2_equal) + [ + [ + (builtin bls12_381_G2_scalarMul) + [ + [ (builtin addInteger) (con integer 123) ] + [ + [ (builtin multiplyInteger) (con integer -987654321) ] + (con integer 52435875175126190479447740508185965837690552500527637822603658699938581184513) + ] + ] + ] + (con bls12_381_G2_element + 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + ] + [ + [ (builtin bls12_381_G2_scalarMul) (con integer 123) ] + (con bls12_381_G2_element + 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + ] +) + diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected new file mode 100644 index 00000000..d51fb799 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 318034442 +| mem: 2284}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-1/bad-zero-1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-1/bad-zero-1.uplc new file mode 100644 index 00000000..3b53f7cc --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-1/bad-zero-1.uplc @@ -0,0 +1,7 @@ +-- This has the infinity bit set but not the compression bit, and so is invalid. +(program 0.0.0 + [ + (builtin bls12_381_G2_uncompress) + (con bytestring #400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-1/bad-zero-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-1/bad-zero-1.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-1/bad-zero-1.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-1/bad-zero-1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-1/bad-zero-1.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-1/bad-zero-1.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-2/bad-zero-2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-2/bad-zero-2.uplc new file mode 100644 index 00000000..d00ae032 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-2/bad-zero-2.uplc @@ -0,0 +1,7 @@ +-- This is the zero point of G2, but with the sign bit set. It should fail to uncompress. +(program 0.0.0 + [ + (builtin bls12_381_G2_uncompress) + (con bytestring #e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-2/bad-zero-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-2/bad-zero-2.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-2/bad-zero-2.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-2/bad-zero-2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-2/bad-zero-2.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-2/bad-zero-2.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-3/bad-zero-3.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-3/bad-zero-3.uplc new file mode 100644 index 00000000..42285e53 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-3/bad-zero-3.uplc @@ -0,0 +1,8 @@ +-- This is the zero point of G2, but with the sign bit set. It should fail to +-- uncompress. +(program 0.0.0 + [ + (builtin bls12_381_G2_uncompress) + (con bytestring #c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-3/bad-zero-3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-3/bad-zero-3.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-3/bad-zero-3.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-3/bad-zero-3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-3/bad-zero-3.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/bad-zero-3/bad-zero-3.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/off-curve/off-curve.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/off-curve/off-curve.uplc new file mode 100644 index 00000000..f0105428 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/off-curve/off-curve.uplc @@ -0,0 +1,7 @@ +-- This contains a value which is not the x-coordinate of a point on the E2 curve. +(program 0.0.0 + [ + (builtin bls12_381_G2_uncompress) + (con bytestring #a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/off-curve/off-curve.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/off-curve/off-curve.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/off-curve/off-curve.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/off-curve/off-curve.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/off-curve/off-curve.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/off-curve/off-curve.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit1-clear/on-curve-bit1-clear.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit1-clear/on-curve-bit1-clear.uplc new file mode 100644 index 00000000..156b0950 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit1-clear/on-curve-bit1-clear.uplc @@ -0,0 +1,8 @@ +-- This value was obtained by hashing 0x0102030405 to G2 but has had the +-- compression bit cleared, so uncompression should fail. +(program 0.0.0 + [ + (builtin bls12_381_G2_uncompress) + (con bytestring #28138ebea766d4d1aa64dd3b5826244c32ea3fe9351f9c8d584203716dae151d14bb5d06e245c24877955c79287682ba082d077bbb2afdb1ad1d48d18e2f0c56b001bce207801adfa9fd451fc59d56f0433b02f921ba5a272c58c06536291d07) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit1-clear/on-curve-bit1-clear.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit1-clear/on-curve-bit1-clear.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit1-clear/on-curve-bit1-clear.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit1-clear/on-curve-bit1-clear.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit1-clear/on-curve-bit1-clear.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit1-clear/on-curve-bit1-clear.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc new file mode 100644 index 00000000..a1a9c176 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc @@ -0,0 +1,9 @@ +-- This value was obtained by hashing 0x0102030405 to G2. The sign bit was set +-- but has been cleared: this negates the point, so uncompression should still +-- succeed. +(program 0.0.0 + [ + (builtin bls12_381_G2_uncompress) + (con bytestring #88138ebea766d4d1aa64dd3b5826244c32ea3fe9351f9c8d584203716dae151d14bb5d06e245c24877955c79287682ba082d077bbb2afdb1ad1d48d18e2f0c56b001bce207801adfa9fd451fc59d56f0433b02f921ba5a272c58c06536291d07) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected new file mode 100644 index 00000000..c5985a86 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 74746572 +| mem: 436}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected new file mode 100644 index 00000000..ca926b8f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.expected @@ -0,0 +1,7 @@ +(program + 0.0.0 + (con + bls12_381_G2_element + 0x88138ebea766d4d1aa64dd3b5826244c32ea3fe9351f9c8d584203716dae151d14bb5d06e245c24877955c79287682ba082d077bbb2afdb1ad1d48d18e2f0c56b001bce207801adfa9fd451fc59d56f0433b02f921ba5a272c58c06536291d07 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc new file mode 100644 index 00000000..ebb75a56 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc @@ -0,0 +1,8 @@ +-- This value was obtained by hashing 0x0102030405 to G2. No changes have been +-- made, so uncompression should succeed. +(program 0.0.0 + [ + (builtin bls12_381_G2_uncompress) + (con bytestring #a8138ebea766d4d1aa64dd3b5826244c32ea3fe9351f9c8d584203716dae151d14bb5d06e245c24877955c79287682ba082d077bbb2afdb1ad1d48d18e2f0c56b001bce207801adfa9fd451fc59d56f0433b02f921ba5a272c58c06536291d07) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected new file mode 100644 index 00000000..c5985a86 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 74746572 +| mem: 436}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.expected new file mode 100644 index 00000000..99a86974 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.expected @@ -0,0 +1,7 @@ +(program + 0.0.0 + (con + bls12_381_G2_element + 0xa8138ebea766d4d1aa64dd3b5826244c32ea3fe9351f9c8d584203716dae151d14bb5d06e245c24877955c79287682ba082d077bbb2afdb1ad1d48d18e2f0c56b001bce207801adfa9fd451fc59d56f0433b02f921ba5a272c58c06536291d07 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc new file mode 100644 index 00000000..e7590e05 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc @@ -0,0 +1,10 @@ +-- This checks that the uncompression function fails on a valid *serialised* G2 +-- point (obtained by hashing 0x0102030405 onto G2). The deserialisation +-- function in the blst library can handle both serialised and compressed +-- points, but we should fail on the former. +(program 0.0.0 + [ + (builtin bls12_381_G2_uncompress) + (con bytestring #08138ebea766d4d1aa64dd3b5826244c32ea3fe9351f9c8d584203716dae151d14bb5d06e245c24877955c79287682ba082d077bbb2afdb1ad1d48d18e2f0c56b001bce207801adfa9fd451fc59d56f0433b02f921ba5a272c58c06536291d071676b275e27060b26dd91aac0a1feb56d1c1de7c323f486e48d54eae0c3c8f4caa45faad589c5d180ac0830dcdb3ecd8126c9c5db86cdf7129cf18582013d267a7c2827a901ef61ab58e7ef150219441abc57671eb39009f6bb166bcbade700d) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/out-of-group/out-of-group.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/out-of-group/out-of-group.uplc new file mode 100644 index 00000000..38d5d6da --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/out-of-group/out-of-group.uplc @@ -0,0 +1,8 @@ +-- This contains a value which is the x-coordinate of a point which lies on the +-- E2 curve but not the G2 subgroup. +(program 0.0.0 + [ + (builtin bls12_381_G2_uncompress) + (con bytestring #a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/out-of-group/out-of-group.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/out-of-group/out-of-group.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/out-of-group/out-of-group.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/out-of-group/out-of-group.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/out-of-group/out-of-group.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/out-of-group/out-of-group.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/too-long/too-long.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/too-long/too-long.uplc new file mode 100644 index 00000000..57fabd0a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/too-long/too-long.uplc @@ -0,0 +1,7 @@ +-- The bytestring is the compressed version of the G2 zero point, but extended to 97 bytes. +(program 0.0.0 + [ + (builtin bls12_381_G2_uncompress) + (con bytestring #c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/too-long/too-long.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/too-long/too-long.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/too-long/too-long.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/too-long/too-long.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/too-long/too-long.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/too-long/too-long.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/too-short/too-short.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/too-short/too-short.uplc new file mode 100644 index 00000000..46a98e3f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/too-short/too-short.uplc @@ -0,0 +1,7 @@ +-- The bytestring is the compressed version of the G2 zero point, but truncated to 94 bytes. +(program 0.0.0 + [ + (builtin bls12_381_G2_uncompress) + (con bytestring #c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) + ] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/too-short/too-short.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/too-short/too-short.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/too-short/too-short.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/too-short/too-short.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/too-short/too-short.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/too-short/too-short.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc new file mode 100644 index 00000000..ba2fd0af --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc @@ -0,0 +1,7 @@ +-- The zero element of G2 uncompresses correctly. +(program 0.0.0 + [ + (builtin bls12_381_G2_uncompress) + (con bytestring #c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc.budget.expected new file mode 100644 index 00000000..c5985a86 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 74746572 +| mem: 436}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc.expected new file mode 100644 index 00000000..9b995f81 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc.expected @@ -0,0 +1,7 @@ +(program + 0.0.0 + (con + bls12_381_G2_element + 0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc new file mode 100644 index 00000000..915ed0fe --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc @@ -0,0 +1,33 @@ +-- = +(program + 1.0.0 + [ + [ + (builtin bls12_381_finalVerify) + [ + [ + (builtin bls12_381_millerLoop) + [ + [ (builtin bls12_381_G1_scalarMul) (con integer 251123) ] + (con bls12_381_G1_element 0x950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5 + ) + ] + ] + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + ] + [ + [ + (builtin bls12_381_millerLoop) + (con + bls12_381_G1_element + 0x950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5 + ) + ] + [ + [ (builtin bls12_381_G2_scalarMul) (con integer 251123) ] + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc.budget.expected new file mode 100644 index 00000000..eacc6214 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1076888097 +| mem: 2399}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc new file mode 100644 index 00000000..59e8c5ce --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc @@ -0,0 +1,22 @@ +-- Check that applying finalVerify to the same two points in GT returns True. +(program 1.0.0 + [ + [ + (builtin bls12_381_finalVerify) + [ + [ + (builtin bls12_381_millerLoop) + (con bls12_381_G1_element 0x950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5) + ] + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + ] + [ + [ + (builtin bls12_381_millerLoop) + (con bls12_381_G1_element 0x950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5) + ] + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] +] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc.budget.expected new file mode 100644 index 00000000..3784137b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 842070360 +| mem: 1545}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc new file mode 100644 index 00000000..33e64ab8 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc @@ -0,0 +1,52 @@ +-- = +(program + 1.0.0 + [ + [ + (builtin bls12_381_finalVerify) + [ + [ + (builtin bls12_381_millerLoop) + [ + [ + (builtin bls12_381_G1_add) + (con + bls12_381_G1_element + 0x950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5 + ) + ] + (con + bls12_381_G1_element + 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f + ) + ] + ] + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1 + ) + ] + ] + [ + [ + (builtin bls12_381_mulMlResult) + [ + [ + (builtin bls12_381_millerLoop) + (con bls12_381_G1_element 0x950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5 + ) + ] + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1 + ) + ] + ] + [ + [ + (builtin bls12_381_millerLoop) + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f + ) + ] + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1 + ) + ] + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc.budget.expected new file mode 100644 index 00000000..eb52f054 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1099405006 +| mem: 2907}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc new file mode 100644 index 00000000..45e479c3 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc @@ -0,0 +1,22 @@ +-- Check that the results of two millerLoops of random points are different. +(program 1.0.0 + [ + [ + (builtin bls12_381_finalVerify) + [ + [ + (builtin bls12_381_millerLoop) + (con bls12_381_G1_element 0x950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5) + ] + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + ] + [ + [ + (builtin bls12_381_millerLoop) + (con bls12_381_G1_element 0xabd61864f519748032551e42e0ac417fd828f079454e3e3c9891c5c29ed7f10bdecc046854e3931cb7002779bd76d71f) + ] + (con bls12_381_G2_element 0x8310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a) + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc.budget.expected new file mode 100644 index 00000000..3784137b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 842070360 +| mem: 1545}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc.expected new file mode 100644 index 00000000..3ee9f07f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc new file mode 100644 index 00000000..d5e13650 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc @@ -0,0 +1,41 @@ +-- = +(program + 1.0.0 + [ + [ + (builtin bls12_381_finalVerify) + [ + [ + (builtin bls12_381_millerLoop) + (con bls12_381_G1_element 0x950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5) + ] + [ + [ + (builtin bls12_381_G2_add) + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + (con bls12_381_G2_element 0x8310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a) + ] + ] + ] + [ + [ + (builtin bls12_381_mulMlResult) + [ + [ + (builtin bls12_381_millerLoop) + (con bls12_381_G1_element 0x950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5) + ] + (con bls12_381_G2_element 0xb0629fa1158c2d23a10413fe91d381a84d25e31d041cd0377d25828498fd02011b35893938ced97535395e4815201e67108bcd4665e0db25d602d76fa791fab706c54abf5e1a9e44b4ac1e6badf3d2ac0328f5e30be341677c8bac5dda7682f1) + ] + ] + [ + [ + (builtin bls12_381_millerLoop) + (con bls12_381_G1_element 0x950dfd33da2682260c76038dfb8bad6e84ae9d599a3c151815945ac1e6ef6b1027cd917f3907479d20d636ce437a41f5) + ] + (con bls12_381_G2_element 0x8310bc97fc7ad9b1616e51226c6a521b9d7fdf03f7299833e6a208ae0399fec76045a43ceef846e0958d0cdf05cf2b1f00460ee6edd2778b413eb7c272bc5b94d12b910f8ac4eb1b55e50a93644714787417bc462349c5e0f6f357b9ac32262a) + ] + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc.budget.expected new file mode 100644 index 00000000..2245b182 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1100438507 +| mem: 2925}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc new file mode 100644 index 00000000..c8dae026 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc @@ -0,0 +1,4 @@ +-- A bytestring consisting entirely of zeros decodes to 0. +(program 1.0.0 + [(builtin byteStringToInteger) (con bool True) (con bytestring #00000000000000000000000000)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc.budget.expected new file mode 100644 index 00000000..217de75a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1174391 +| mem: 602}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc.expected new file mode 100644 index 00000000..df4f546c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 0)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc new file mode 100644 index 00000000..88168bec --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc @@ -0,0 +1,4 @@ +-- Check that a particular bytestring decodes to the expected integer. +(program 1.0.0 + [(builtin byteStringToInteger) (con bool True) (con bytestring #123456abcdef)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc.budget.expected new file mode 100644 index 00000000..cb121597 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1130015 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc.expected new file mode 100644 index 00000000..6c0ec7a5 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 20016001699311)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc new file mode 100644 index 00000000..5b431b81 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc @@ -0,0 +1,4 @@ +-- The empty bytestring decodes to 0 +(program 1.0.0 + [(builtin byteStringToInteger) (con bool True) (con bytestring #)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc.budget.expected new file mode 100644 index 00000000..cb121597 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1130015 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc.expected new file mode 100644 index 00000000..df4f546c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 0)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc new file mode 100644 index 00000000..eb8a14e2 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc @@ -0,0 +1,7 @@ +-- Check that leading zeros don't affect the result of a big-endian decoding. +(program 1.0.0 + [(builtin equalsInteger) + [(builtin byteStringToInteger) (con bool True) (con bytestring #123456abcdef)] + [(builtin byteStringToInteger) (con bool True) (con bytestring #0000000000000000123456abcdef)] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc.budget.expected new file mode 100644 index 00000000..0f70adc0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 2404639 +| mem: 1404}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc.expected new file mode 100644 index 00000000..7910f27f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc new file mode 100644 index 00000000..f0b4082f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc @@ -0,0 +1,9 @@ +-- Check that the big-endian decoding of a bytestring is the same as the +-- little-endian decoding of its reverse. +(program 1.0.0 + [(builtin equalsInteger) + [(builtin byteStringToInteger) (con bool False) (con bytestring #92828b9d9e097a23ef34ba5522ee67)] + [(builtin byteStringToInteger) (con bool True) (con bytestring #67ee2255ba34ef237a099e9d8b8292)] + ] +) + diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc.budget.expected new file mode 100644 index 00000000..067abb99 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 2449573 +| mem: 1405}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc.expected new file mode 100644 index 00000000..7910f27f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc new file mode 100644 index 00000000..4f2bbb77 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc @@ -0,0 +1,4 @@ +-- A bytestring consisting entirely of zeros decodes to 0. +(program 1.0.0 + [(builtin byteStringToInteger) (con bool False) (con bytestring #00000000000000000000000000)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc.budget.expected new file mode 100644 index 00000000..217de75a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1174391 +| mem: 602}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc.expected new file mode 100644 index 00000000..df4f546c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 0)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc new file mode 100644 index 00000000..6bacec71 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc @@ -0,0 +1,4 @@ +-- Check that a particular bytestring decodes to the expected integer. +(program 1.0.0 + [(builtin byteStringToInteger) (con bool False) (con bytestring #123456abcdef)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc.budget.expected new file mode 100644 index 00000000..cb121597 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1130015 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc.expected new file mode 100644 index 00000000..146be581 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 263666621887506)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc new file mode 100644 index 00000000..382013e3 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc @@ -0,0 +1,4 @@ +-- The empty bytestring decodes to 0 +(program 1.0.0 + [(builtin byteStringToInteger) (con bool False) (con bytestring #)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc.budget.expected new file mode 100644 index 00000000..cb121597 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1130015 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc.expected new file mode 100644 index 00000000..df4f546c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 0)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc new file mode 100644 index 00000000..1b476362 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc @@ -0,0 +1,7 @@ +-- Check that trailing zeros don't affect the result of a little-endian decoding. +(program 1.0.0 + [(builtin equalsInteger) + [(builtin byteStringToInteger) (con bool False) (con bytestring #123456abcdef)] + [(builtin byteStringToInteger) (con bool False) (con bytestring #123456abcdef0000000000000000)] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc.budget.expected new file mode 100644 index 00000000..0f70adc0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 2404639 +| mem: 1404}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc.expected new file mode 100644 index 00000000..7910f27f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc new file mode 100644 index 00000000..45e4a6c8 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc @@ -0,0 +1,9 @@ +(program 0.0.0 +[[[[[[(force (builtin chooseData)) + (con data (B #001A))] + (lam x (con integer 1))] + (lam y (con string "two"))] + (lam z3 z3)] + (lam u (con data (I 4)))] + (lam v (con data (B #05)))] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc.budget.expected new file mode 100644 index 00000000..7e885532 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 318475 +| mem: 1532}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc.expected new file mode 100644 index 00000000..0a09a538 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (lam v (con data (B #05)))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc new file mode 100644 index 00000000..e3d391bf --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc @@ -0,0 +1,9 @@ +(program 0.0.0 +[[[[[[(force (builtin chooseData)) + (con data (Constr 1 [I 1]))] + (lam x (con integer 1))] + (lam y (con string "two"))] + (lam z3 z3)] + (lam u (con data (I 4)))] + (lam v (con data (B #05)))] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc.budget.expected new file mode 100644 index 00000000..7e885532 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 318475 +| mem: 1532}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc.expected new file mode 100644 index 00000000..9e47bb88 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (lam x (con integer 1))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc new file mode 100644 index 00000000..a5613b92 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc @@ -0,0 +1,9 @@ +(program 0.0.0 +[[[[[[(force (builtin chooseData)) + (con data (I 5))] + (lam x (con integer 1))] + (lam y (con string "two"))] + (lam z3 z3)] + (lam u (con data (I 4)))] + (lam v (con data (B #05)))] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc.budget.expected new file mode 100644 index 00000000..7e885532 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 318475 +| mem: 1532}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc.expected new file mode 100644 index 00000000..9b7fe047 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (lam u (con data (I 4)))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataList/chooseDataList.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataList/chooseDataList.uplc new file mode 100644 index 00000000..69cd8415 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataList/chooseDataList.uplc @@ -0,0 +1,9 @@ +(program 0.0.0 +[[[[[[(force (builtin chooseData)) + (con data (List [I 0, I 1 ]))] + (lam x (con integer 1))] + (lam y (con string "two"))] + (lam z3 z3)] + (lam u (con data (I 4)))] + (lam v (con data (B #05)))] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataList/chooseDataList.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataList/chooseDataList.uplc.budget.expected new file mode 100644 index 00000000..7e885532 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataList/chooseDataList.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 318475 +| mem: 1532}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataList/chooseDataList.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataList/chooseDataList.uplc.expected new file mode 100644 index 00000000..43467ba0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataList/chooseDataList.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (lam z3 z3)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataMap/chooseDataMap.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataMap/chooseDataMap.uplc new file mode 100644 index 00000000..6c752533 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataMap/chooseDataMap.uplc @@ -0,0 +1,9 @@ +(program 0.0.0 +[[[[[[(force (builtin chooseData)) + (con data (Map [(I 0, B #00), (B #0F, I 1)]))] + (lam x (con integer 1))] + (lam y (con string "two"))] + (lam z3 z3)] + (lam u (con data (I 4)))] + (lam v (con data (B #05)))] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataMap/chooseDataMap.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataMap/chooseDataMap.uplc.budget.expected new file mode 100644 index 00000000..7e885532 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataMap/chooseDataMap.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 318475 +| mem: 1532}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataMap/chooseDataMap.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataMap/chooseDataMap.uplc.expected new file mode 100644 index 00000000..620eaaa8 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseDataMap/chooseDataMap.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (lam y (con string "two"))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList1/chooseList1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList1/chooseList1.uplc new file mode 100644 index 00000000..c6c13fa4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList1/chooseList1.uplc @@ -0,0 +1 @@ +(program 0.0.0 [[[(force (force (builtin chooseList))) (con (list integer) [ 0 , 1 , 2 ])] (con integer 1)] (con integer 2)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList1/chooseList1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList1/chooseList1.uplc.budget.expected new file mode 100644 index 00000000..f38c4c1d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList1/chooseList1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 277094 +| mem: 1032}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList1/chooseList1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList1/chooseList1.uplc.expected new file mode 100644 index 00000000..0408fe9b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList1/chooseList1.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con integer 2)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList2/chooseList2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList2/chooseList2.uplc new file mode 100644 index 00000000..894e9b74 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList2/chooseList2.uplc @@ -0,0 +1 @@ +(program 0.0.0 [[[(force (force (builtin chooseList))) (con (list integer) [ ])] (con integer 1)] (con integer 2)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList2/chooseList2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList2/chooseList2.uplc.budget.expected new file mode 100644 index 00000000..f38c4c1d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList2/chooseList2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 277094 +| mem: 1032}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList2/chooseList2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList2/chooseList2.uplc.expected new file mode 100644 index 00000000..3a607321 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList2/chooseList2.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con integer 1)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList3/chooseList3.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList3/chooseList3.uplc new file mode 100644 index 00000000..3b1d34d9 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList3/chooseList3.uplc @@ -0,0 +1,2 @@ +-- chooseList should accept arbitrary terms in the branches +(program 0.0.0 [[[(force (force (builtin chooseList))) (con (list integer) [ 0, 1, 2 ])] (lam x x)] (lam y (lam z z))]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList3/chooseList3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList3/chooseList3.uplc.budget.expected new file mode 100644 index 00000000..f38c4c1d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList3/chooseList3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 277094 +| mem: 1032}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList3/chooseList3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList3/chooseList3.uplc.expected new file mode 100644 index 00000000..74125d1f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList3/chooseList3.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (lam y (lam z z))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList4/chooseList4.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList4/chooseList4.uplc new file mode 100644 index 00000000..4e266740 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList4/chooseList4.uplc @@ -0,0 +1,2 @@ +-- chooseList should accept arbitrary terms in the branches +(program 0.0.0 [[[(force (force (builtin chooseList))) (con (list integer) [ ])] (lam x x)] (lam y (lam z z))]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList4/chooseList4.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList4/chooseList4.uplc.budget.expected new file mode 100644 index 00000000..f38c4c1d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList4/chooseList4.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 277094 +| mem: 1032}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList4/chooseList4.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList4/chooseList4.uplc.expected new file mode 100644 index 00000000..c9c55049 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseList/chooseList4/chooseList4.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (lam x x)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseUnit/chooseUnit.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseUnit/chooseUnit.uplc new file mode 100644 index 00000000..15cb16eb --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseUnit/chooseUnit.uplc @@ -0,0 +1 @@ +(program 0.0.0 [[(force (builtin chooseUnit)) (con unit ())] (con integer 2)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseUnit/chooseUnit.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseUnit/chooseUnit.uplc.budget.expected new file mode 100644 index 00000000..856bfa04 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseUnit/chooseUnit.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 157562 +| mem: 704}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseUnit/chooseUnit.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseUnit/chooseUnit.uplc.expected new file mode 100644 index 00000000..0408fe9b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseUnit/chooseUnit.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con integer 2)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseUnit2/chooseUnit2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseUnit2/chooseUnit2.uplc new file mode 100644 index 00000000..b60e455c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseUnit2/chooseUnit2.uplc @@ -0,0 +1,2 @@ +-- chooseUnit should accept arbitrary terms for the second argument +(program 0.0.0 [[(force (builtin chooseUnit)) (con unit ())] (lam x x)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseUnit2/chooseUnit2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseUnit2/chooseUnit2.uplc.budget.expected new file mode 100644 index 00000000..856bfa04 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseUnit2/chooseUnit2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 157562 +| mem: 704}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseUnit2/chooseUnit2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseUnit2/chooseUnit2.uplc.expected new file mode 100644 index 00000000..872f421e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/chooseUnit2/chooseUnit2.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (lam a a)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString1/consByteString1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString1/consByteString1.uplc new file mode 100644 index 00000000..b6c62414 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString1/consByteString1.uplc @@ -0,0 +1,2 @@ +-- the arg overflow'ed over the maxBound :: Word8 +(program 1.0.0 [(builtin consByteString) (con integer 256) (con bytestring #)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString1/consByteString1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString1/consByteString1.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString1/consByteString1.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString1/consByteString1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString1/consByteString1.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString1/consByteString1.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString2/consByteString2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString2/consByteString2.uplc new file mode 100644 index 00000000..ab20a4aa --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString2/consByteString2.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin consByteString) (con integer -88) (con bytestring #686543616B654973414C6965)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString2/consByteString2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString2/consByteString2.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString2/consByteString2.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString2/consByteString2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString2/consByteString2.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString2/consByteString2.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString3/consByteString3.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString3/consByteString3.uplc new file mode 100644 index 00000000..9855cea9 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString3/consByteString3.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin consByteString) (con integer 84) (con bytestring #686543616B654973414C6965)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString3/consByteString3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString3/consByteString3.uplc.budget.expected new file mode 100644 index 00000000..01e0d07b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString3/consByteString3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 152466 +| mem: 603}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString3/consByteString3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString3/consByteString3.uplc.expected new file mode 100644 index 00000000..19506cb9 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/consByteString/consByteString3/consByteString3.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bytestring #54686543616B654973414C6965)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/constrData/constrData.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/constrData/constrData.uplc new file mode 100644 index 00000000..9cab30e0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/constrData/constrData.uplc @@ -0,0 +1 @@ +(program 0.0.0 [[(builtin constrData) (con integer 1)] (con list(data) [{ Integer 0 }])] ) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/constrData/constrData.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/constrData/constrData.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/constrData/constrData.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/constrData/constrData.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/constrData/constrData.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/constrData/constrData.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/decodeUtf8/decodeUtf8-invalid/decodeUtf8-invalid.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/decodeUtf8/decodeUtf8-invalid/decodeUtf8-invalid.uplc new file mode 100644 index 00000000..76e9e74e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/decodeUtf8/decodeUtf8-invalid/decodeUtf8-invalid.uplc @@ -0,0 +1,2 @@ +-- invalid utf8 +(program 0.0.0 [(builtin decodeUtf8) (con bytestring #A3)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/decodeUtf8/decodeUtf8-invalid/decodeUtf8-invalid.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/decodeUtf8/decodeUtf8-invalid/decodeUtf8-invalid.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/decodeUtf8/decodeUtf8-invalid/decodeUtf8-invalid.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/decodeUtf8/decodeUtf8-invalid/decodeUtf8-invalid.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/decodeUtf8/decodeUtf8-invalid/decodeUtf8-invalid.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/decodeUtf8/decodeUtf8-invalid/decodeUtf8-invalid.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc new file mode 100644 index 00000000..52eb34cb --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc @@ -0,0 +1 @@ +(program 0.0.0 [(builtin decodeUtf8) (con bytestring #4f6c61)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc.budget.expected new file mode 100644 index 00000000..8e15c4e4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 140058 +| mem: 406}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc.expected new file mode 100644 index 00000000..967acddf --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con string "Ola")) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc new file mode 100644 index 00000000..de9ea85b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin divideInteger) (con integer -503) (con integer -1777777777)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc.budget.expected new file mode 100644 index 00000000..f432423f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 212030 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc.expected new file mode 100644 index 00000000..87e0223f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 0)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc new file mode 100644 index 00000000..eb78c4db --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin divideInteger) (con integer -503) (con integer 1777777777)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc.budget.expected new file mode 100644 index 00000000..f432423f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 212030 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc.expected new file mode 100644 index 00000000..1cb56cff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer -1)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc new file mode 100644 index 00000000..21db5771 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin divideInteger) (con integer 503) (con integer -1777777777)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc.budget.expected new file mode 100644 index 00000000..f432423f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 212030 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc.expected new file mode 100644 index 00000000..1cb56cff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer -1)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc new file mode 100644 index 00000000..022b4a1a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin divideInteger) (con integer 503) (con integer 1777777777)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc.budget.expected new file mode 100644 index 00000000..f432423f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 212030 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc.expected new file mode 100644 index 00000000..87e0223f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 0)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-zero/divideInteger-zero.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-zero/divideInteger-zero.uplc new file mode 100644 index 00000000..7d470cd0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-zero/divideInteger-zero.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin divideInteger) (con integer 1) (con integer 0)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-zero/divideInteger-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-zero/divideInteger-zero.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-zero/divideInteger-zero.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-zero/divideInteger-zero.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-zero/divideInteger-zero.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger-zero/divideInteger-zero.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc new file mode 100644 index 00000000..cb6e196d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin divideInteger) (con integer 1) ] (con integer 2) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc.budget.expected new file mode 100644 index 00000000..1827f6ee --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 212030 +| mem: 601}) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc.expected new file mode 100644 index 00000000..87e0223f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 0)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/encodeUtf8/encodeUtf8.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/encodeUtf8/encodeUtf8.uplc new file mode 100644 index 00000000..91b74b41 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/encodeUtf8/encodeUtf8.uplc @@ -0,0 +1 @@ +(program 0.0.0 [(builtin encodeUtf8) (con string "Ola")]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/encodeUtf8/encodeUtf8.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/encodeUtf8/encodeUtf8.uplc.budget.expected new file mode 100644 index 00000000..312c47a5 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/encodeUtf8/encodeUtf8.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 177863 +| mem: 410}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/encodeUtf8/encodeUtf8.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/encodeUtf8/encodeUtf8.uplc.expected new file mode 100644 index 00000000..ad6b2a23 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/encodeUtf8/encodeUtf8.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bytestring #4f6c61)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc new file mode 100644 index 00000000..d211b5da --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc @@ -0,0 +1 @@ +(program 0.0.0 [ [ (builtin equalsByteString) (con bytestring #00ffaa) ] (con bytestring #00ffaa) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc.budget.expected new file mode 100644 index 00000000..c76e8614 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 109636 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc new file mode 100644 index 00000000..273c95dc --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin lengthOfByteString) (con bytestring #54686543616B654973414C6965)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc.budget.expected new file mode 100644 index 00000000..56d04b0b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 70200 +| mem: 410}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc.expected new file mode 100644 index 00000000..358b5def --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 13)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc new file mode 100644 index 00000000..8feae187 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin equalsByteString) (con bytestring #54686543616B654973414C6965) (con bytestring #54686543616B65497341506965)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc.budget.expected new file mode 100644 index 00000000..4822eaf1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 109674 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc.expected new file mode 100644 index 00000000..3ee9f07f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsData/equalsData.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsData/equalsData.uplc new file mode 100644 index 00000000..e9532f25 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsData/equalsData.uplc @@ -0,0 +1,3 @@ +(program 0.0.0 [[(builtin equalsData) + (con data { Constr 1 [ Integer 0 ] }) ] + (con data { Constr 1 [ Integer 0 ] }) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsData/equalsData.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsData/equalsData.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsData/equalsData.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsData/equalsData.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsData/equalsData.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsData/equalsData.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc new file mode 100644 index 00000000..b268648a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin equalsInteger) (con integer 1) ] (con integer 2) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc.budget.expected new file mode 100644 index 00000000..2ac14b2d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 132433 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc.expected new file mode 100644 index 00000000..3ee9f07f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc new file mode 100644 index 00000000..208db892 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin equalsInteger) (con integer 45723452347050234588234852993485827934) ] (con integer 45723452347050234588234852993485827933) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc.budget.expected new file mode 100644 index 00000000..603524d4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 132991 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc.expected new file mode 100644 index 00000000..3ee9f07f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc new file mode 100644 index 00000000..946682ba --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin equalsInteger) (con integer 45723452347050234588234852993485827934) ] (con integer 45723452347050234588234852993485827934) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc.budget.expected new file mode 100644 index 00000000..603524d4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 132991 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsString/equalsString1/equalsString1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsString/equalsString1/equalsString1.uplc new file mode 100644 index 00000000..8f0dbf3e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsString/equalsString1/equalsString1.uplc @@ -0,0 +1 @@ +(program 0.0.0 [ [ (builtin equalsString) (con string "Ola")] (con string " mundo!") ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsString/equalsString1/equalsString1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsString/equalsString1/equalsString1.uplc.budget.expected new file mode 100644 index 00000000..4a1b4c1a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsString/equalsString1/equalsString1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 119284 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsString/equalsString1/equalsString1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsString/equalsString1/equalsString1.uplc.expected new file mode 100644 index 00000000..dd87da54 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsString/equalsString1/equalsString1.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsString/equalsString2/equalsString2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsString/equalsString2/equalsString2.uplc new file mode 100644 index 00000000..57390999 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsString/equalsString2/equalsString2.uplc @@ -0,0 +1 @@ +(program 0.0.0 [ [ (builtin equalsString) (con string "Ola")] (con string "Ola") ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsString/equalsString2/equalsString2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsString/equalsString2/equalsString2.uplc.budget.expected new file mode 100644 index 00000000..e8dc4ba7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsString/equalsString2/equalsString2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 262882 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsString/equalsString2/equalsString2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsString/equalsString2/equalsString2.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/equalsString/equalsString2/equalsString2.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc new file mode 100644 index 00000000..10356aa8 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc @@ -0,0 +1,5 @@ +(program 0.0.0 + [(force (force (builtin fstPair))) + (con (pair bool bytestring) + (True, #012345))] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc.budget.expected new file mode 100644 index 00000000..f5265eee --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 221995 +| mem: 632}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList1/headList1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList1/headList1.uplc new file mode 100644 index 00000000..d434ae6c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList1/headList1.uplc @@ -0,0 +1 @@ +(program 0.0.0 [(force (builtin headList)) (con (list integer) [ 1, 2 ])]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList1/headList1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList1/headList1.uplc.budget.expected new file mode 100644 index 00000000..cee9c8bc --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList1/headList1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 147250 +| mem: 532}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList1/headList1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList1/headList1.uplc.expected new file mode 100644 index 00000000..3a607321 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList1/headList1.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con integer 1)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList2/headList2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList2/headList2.uplc new file mode 100644 index 00000000..31f3ae6e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList2/headList2.uplc @@ -0,0 +1 @@ +(program 0.0.0 [(force (builtin headList)) (con (list integer) [ ])]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList2/headList2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList2/headList2.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList2/headList2.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList2/headList2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList2/headList2.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList2/headList2.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList3/headList3.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList3/headList3.uplc new file mode 100644 index 00000000..1edb44eb --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList3/headList3.uplc @@ -0,0 +1 @@ +(program 0.0.0 [(force (builtin headList)) (con (list integer) [ 1, 2, 3 ])]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList3/headList3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList3/headList3.uplc.budget.expected new file mode 100644 index 00000000..cee9c8bc --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList3/headList3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 147250 +| mem: 532}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList3/headList3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList3/headList3.uplc.expected new file mode 100644 index 00000000..3a607321 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headList3/headList3.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con integer 1)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headPartial/headPartial.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headPartial/headPartial.uplc new file mode 100644 index 00000000..1b78b850 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headPartial/headPartial.uplc @@ -0,0 +1,2 @@ +-- head is partial like haskell's and blows up when given an empty list +(program 0.0.0 [(force (builtin headList)) [(builtin mkNilData) (con unit ())]]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headPartial/headPartial.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headPartial/headPartial.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headPartial/headPartial.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headPartial/headPartial.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headPartial/headPartial.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/headList/headPartial/headPartial.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/iData/iData.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/iData/iData.uplc new file mode 100644 index 00000000..65a0a42f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/iData/iData.uplc @@ -0,0 +1 @@ +(program 0.0.0 [(builtin iData) (con integer 0)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/iData/iData.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/iData/iData.uplc.budget.expected new file mode 100644 index 00000000..79bd360f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/iData/iData.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 63399 +| mem: 432}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/iData/iData.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/iData/iData.uplc.expected new file mode 100644 index 00000000..f582b220 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/iData/iData.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con data (I 0))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc new file mode 100644 index 00000000..94a11f44 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ [ (force (builtin ifThenElse)) (con bool True) ] (lam x x) ] (con integer 2) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc.budget.expected new file mode 100644 index 00000000..bf107dde --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 204149 +| mem: 901}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc.expected new file mode 100644 index 00000000..b4f6fd5c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (lam x x)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc new file mode 100644 index 00000000..4cd3b1bf --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(force (builtin ifThenElse)) (con bool False) (lam x x) (lam y (lam z z))] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc.budget.expected new file mode 100644 index 00000000..bf107dde --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 204149 +| mem: 901}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc.expected new file mode 100644 index 00000000..5c384bc0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (lam y (lam z z))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc new file mode 100644 index 00000000..4f44fc88 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(force (builtin ifThenElse)) (con bool False) (lam x x) (con integer 42)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc.budget.expected new file mode 100644 index 00000000..bf107dde --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 204149 +| mem: 901}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc.expected new file mode 100644 index 00000000..864f897c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 42)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-4/ifThenElse-4.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-4/ifThenElse-4.uplc new file mode 100644 index 00000000..62e28438 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-4/ifThenElse-4.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(force (builtin ifThenElse)) (con bool False) (error) (con integer 42)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-4/ifThenElse-4.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-4/ifThenElse-4.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-4/ifThenElse-4.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-4/ifThenElse-4.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-4/ifThenElse-4.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-4/ifThenElse-4.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-bad-cond-1/ifThenElse-bad-cond-1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-bad-cond-1/ifThenElse-bad-cond-1.uplc new file mode 100644 index 00000000..2b3b895e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-bad-cond-1/ifThenElse-bad-cond-1.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ [ (force (builtin ifThenElse)) (con integer 1) ] (con integer 11) ] (con integer -22) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-bad-cond-1/ifThenElse-bad-cond-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-bad-cond-1/ifThenElse-bad-cond-1.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-bad-cond-1/ifThenElse-bad-cond-1.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-bad-cond-1/ifThenElse-bad-cond-1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-bad-cond-1/ifThenElse-bad-cond-1.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-bad-cond-1/ifThenElse-bad-cond-1.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-bad-cond-2/ifThenElse-bad-cond-2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-bad-cond-2/ifThenElse-bad-cond-2.uplc new file mode 100644 index 00000000..239ccef4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-bad-cond-2/ifThenElse-bad-cond-2.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ [ (force (builtin ifThenElse)) (lam x (lam y x)) ] (con integer 11) ] (con integer -22) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-bad-cond-2/ifThenElse-bad-cond-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-bad-cond-2/ifThenElse-bad-cond-2.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-bad-cond-2/ifThenElse-bad-cond-2.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-bad-cond-2/ifThenElse-bad-cond-2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-bad-cond-2/ifThenElse-bad-cond-2.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-bad-cond-2/ifThenElse-bad-cond-2.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-no-force/ifThenElse-no-force.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-no-force/ifThenElse-no-force.uplc new file mode 100644 index 00000000..c203306d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-no-force/ifThenElse-no-force.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ [ (builtin ifThenElse) (con bool True) ] (con integer 0) ] (con integer 1) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-no-force/ifThenElse-no-force.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-no-force/ifThenElse-no-force.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-no-force/ifThenElse-no-force.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-no-force/ifThenElse-no-force.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-no-force/ifThenElse-no-force.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/ifThenElse/ifThenElse-no-force/ifThenElse-no-force.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc new file mode 100644 index 00000000..34b2c2ec --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc @@ -0,0 +1 @@ +(program 0.0.0 [ [ (builtin indexByteString) (con bytestring #00ffaa) ] (con integer 1) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc.budget.expected new file mode 100644 index 00000000..9958a61e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 93269 +| mem: 604}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc.expected new file mode 100644 index 00000000..f346be33 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con integer 255)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteStringOOB/indexByteStringOOB.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteStringOOB/indexByteStringOOB.uplc new file mode 100644 index 00000000..340218bb --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteStringOOB/indexByteStringOOB.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin indexByteString) (con bytestring #00) (con integer 1)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteStringOOB/indexByteStringOOB.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteStringOOB/indexByteStringOOB.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteStringOOB/indexByteStringOOB.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteStringOOB/indexByteStringOOB.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteStringOOB/indexByteStringOOB.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteStringOOB/indexByteStringOOB.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteStringOverflow/indexByteStringOverflow.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteStringOverflow/indexByteStringOverflow.uplc new file mode 100644 index 00000000..07c07c92 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteStringOverflow/indexByteStringOverflow.uplc @@ -0,0 +1,3 @@ +-- this is different than out-of-bounds error, the index argument overflow'ed the maxBound :: Int64 +-- same error would happen when underflow'ing the minBound :: Int64 +(program 1.0.0 [(builtin indexByteString) (con bytestring #00) (con integer 9223372036854775808)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteStringOverflow/indexByteStringOverflow.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteStringOverflow/indexByteStringOverflow.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteStringOverflow/indexByteStringOverflow.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteStringOverflow/indexByteStringOverflow.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteStringOverflow/indexByteStringOverflow.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/indexByteString/indexByteStringOverflow/indexByteStringOverflow.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc new file mode 100644 index 00000000..ff2ebfae --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc @@ -0,0 +1,4 @@ +-- Check that a particular integer encodes to the expected bytestring using exactly the right width. +(program 1.0.0 + [(builtin integerToByteString) (con bool True) (con integer 6) (con integer 20016001699311)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected new file mode 100644 index 00000000..0bc43be7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1434707 +| mem: 801}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.expected new file mode 100644 index 00000000..44e88935 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bytestring #123456abcdef)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc new file mode 100644 index 00000000..a2b5144a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc @@ -0,0 +1,5 @@ +-- Check that a particular integer encodes to the expected bytestring with some +-- extra padding on the left when the width is greater than the minimal required width +(program 1.0.0 + [(builtin integerToByteString) (con bool True) (con integer 12) (con integer 20016001699311)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected new file mode 100644 index 00000000..ce3a2a71 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1434707 +| mem: 801}) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.expected new file mode 100644 index 00000000..561c2f76 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bytestring #000000000000123456abcdef)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc new file mode 100644 index 00000000..2f6b805c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc @@ -0,0 +1,5 @@ +-- Check that the maximum allowable input (2^65536-1) fits into the maximum width. +(program 1.0.0 + [(builtin integerToByteString) (con bool True) (con integer 8192) (con integer 2003529930406846464979072351560255750447825475569751419265016973710894059556311453089506130880933348101038234342907263181822949382118812668869506364761547029165041871916351587966347219442930927982084309104855990570159318959639524863372367203002916969592156108764948889254090805911457037675208500206671563702366126359747144807111774815880914135742720967190151836282560618091458852699826141425030123391108273603843767876449043205960379124490905707560314035076162562476031863793126484703743782954975613770981604614413308692118102485959152380195331030292162800160568670105651646750568038741529463842244845292537361442533614373729088303794601274724958414864915930647252015155693922628180691650796381064132275307267143998158508811292628901134237782705567421080070065283963322155077831214288551675554073345107213112427399562982719769150054883905223804357045848197956393157853510018992000024141963706813559840464039472194016069517690156119726982337890017641517190051133466306898140219383481435426387306539552969691388024158161859561100640362119796101859534802787167200122604642492385111393400464351623867567078745259464670903886547743483217897012764455529409092021959585751622973333576159552394885297579954028471943529913543763705986928913757153740001986394332464890052543106629669165243419174691389632476560289415199775477703138064781342309596190960654591300890188887588084733625956065444888501447335706058817090162108499714529568344061979690565469813631162053579369791403236328496233046421066136200220175787851857409162050489711781820400187282939943446186224328009837323764931814789848119452713007440220765680910376203999203492023906626264491909167985461515778839060397720759279378852241294301017458086862263369284725851403039615558564330385450688652213114813638408384778263790459607186876728509763471271988890680478243230394718650525660978150729861141430305816927924971409161059417185352275887504477592218301158780701975535722241400019548102005661773589781499532325208589753463547007786690406429016763808161740550405117670093673202804549339027992491867306539931640720492238474815280619166900933805732120816350707634351669869625020969023162859350071874190579161241536897514808261904847946571736601005892476655445840838334790544144817684255327207315586349347605137419779525190365032198020108764738368682531025183377533908861426184800374008082238104076468878471647552945326947661700424461063311238021134588694532200116564076327023074292426051582811070387018345324567635625951430032037432740780879056283663406965030844225855967039271869461158513793386475699748568670079823960604393478850861649260304945061743412365828352144806726676841807083754862211408236579802961200027441324438432402331257403545019352428776430880232850855886089962774458164680857875115807014743763867976955049991643998284357290415378143438847303484261903388841494031366139854257635577105335580206622185577060082551288893332226436281984838613239570676191409638533832374343758830859233722284644287996245605476932428998432652677378373173288063210753211238680604674708428051166488709084770291208161104912555598322366244868556651402684641209694982590565519216188104341226838996283071654868525536914850299539675503954938371853405900096187489473992880432496373165753803673586710175783994818471798498246948060532081996066183434012476096639519778021441199752546704080608499344178256285092726523709898651539462193004607364507926212975917698293892367015170992091531567814439791248475706237804600009918293321306880570046591458387208088016887445835557926258465124763087148566313528934166117490617526671492672176128330845273936469244582892571388877839056300482483799839692029222215486145902373478222682521639957440801727144146179559226175083889020074169926238300282286249284182671243405751424188569994272331606998712986882771820617214453142574944015066139463169197629181506579745526236191224848063890033669074365989226349564114665503062965960199720636202603521917776740668777463549375318899587866282125469797102065747232721372918144666659421872003474508942830911535189271114287108376159222380276605327823351661555149369375778466670145717971901227117812780450240026384758788339396817962950690798817121690686929538248529830023476068454114178139110648560236549754227497231007615131870024053910510913817843721791422528587432098524957878034683703337818421444017138688124249984418618129271198533315382567321870421530631197748535214670955334626336610864667332292409879849256691109516143618601548909740241913509623043612196128165950518666022030715613684732364660868905014263913906515063908199378852318365059897299125404479443425166774299659811849233151555272883274028352688442408752811283289980625912673699546247341543333500147231430612750390307397135252069338173843322950701049061867539433130784798015655130384758155685236218010419650255596181934986315913233036096461905990236112681196023441843363334594927631946101716652913823717182394299216272538461776065694542297877071383198817036964588689811863210976900355735884624464835706291453052757101278872027965364479724025405448132748391794128826423835171949197209797145936887537198729130831738033911016128547415377377715951728084111627597186384924222802373441925469991983672192131287035585307966942713416391033882754318613643490100943197409047331014476299861725424423355612237435715825933382804986243892498222780715951762757847109475119033482241412025182688713728193104253478196128440176479531505057110722974314569915223451643121848657575786528197564843508958384722923534559464521215831657751471298708225909292655638836651120681943836904116252668710044560243704200663709001941185557160472044643696932850060046928140507119069261393993902735534545567470314903886022024639948260501762431969305640666366626090207048887438898907498152865444381862917382901051820869936382661868303915273264581286782806601337500096593364625146091723180312930347877421234679118454791311109897794648216922505629399956793483801699157439700537542134485874586856047286751065423341893839099110586465595113646061055156838541217459801807133163612573079611168343863767667307354583494789788316330129240800836356825939157113130978030516441716682518346573675934198084958947940983292500086389778563494693212473426103062713745077286156922596628573857905533240641849018451328284632709269753830867308409142247659474439973348130810986399417379789657010687026734161967196591599588537834822988270125605842365589539690306474965584147981310997157542043256395776070485100881578291408250777738559790129129407309462785944505859412273194812753225152324801503466519048228961406646890305102510916237770448486230229488966711380555607956620732449373374027836767300203011615227008921843515652121379215748206859356920790214502277133099987729459596952817044582181956080965811702798062669891205061560742325686842271306295009864421853470810407128917646906550836129916694778023822502789667843489199409657361704586786242554006942516693979292624714524945408858422726153755260071904336329196375777502176005195800693847635789586878489536872122898557806826518192703632099480155874455575175312736471421295536494084385586615208012115079075068553344489258693283859653013272046970694571546959353658571788894862333292465202735853188533370948455403336565356988172582528918056635488363743793348411845580168331827676834646291995605513470039147876808640322629616641560667508153710646723108461964247537490553744805318226002710216400980584497526023035640038083472053149941172965736785066421400842696497103241919182121213206939769143923368374709228267738708132236680086924703491586840991153098315412063566123187504305467536983230827966457417620806593177265685841681837966106144963432544111706941700222657817358351259821080769101961052229263879745049019254311900620561906577452416191913187533984049343976823310298465893318373015809592522829206820862230332585280119266496314441316442773003237792274712330696417149945532261035475145631290668854345426869788447742981777493710117614651624183616680254815296335308490849943006763654806102940094693750609845588558043970485914449584445079978497045583550685408745163316464118083123079704389849190506587586425810738422420591191941674182490452700288263983057950057341711487031187142834184499153456702915280104485145176055306971441761368582384102787659324662689978418319620312262421177391477208004883578333569204533935953254564897028558589735505751235129536540502842081022785248776603574246366673148680279486052445782673626230852978265057114624846595914210278122788941448163994973881884622768244851622051817076722169863265701654316919742651230041757329904473537672536845792754365412826553581858046840069367718605020070547247548400805530424951854495267247261347318174742180078574693465447136036975884118029408039616746946288540679172138601225419503819704538417268006398820656328792839582708510919958839448297775647152026132871089526163417707151642899487953564854553553148754978134009964854498635824847690590033116961303766127923464323129706628411307427046202032013368350385425360313636763575212604707425311209233402837482949453104727418969287275572027615272268283376741393425652653283068469997597097750005560889932685025049212884068274139881631540456490350775871680074055685724021758685439053228133770707415830756269628316955687424060527726485853050611356384851965918968649596335568216975437621430778665934730450164822432964891270709898076676625671517269062058815549666382573829274182082278960684488222983394816670984039024283514306813767253460126007269262969468672750794346190439996618979611928750519442356402644303271737341591281496056168353988188569484045342311424613559925272330064881627466723523751234311893442118885085079358163848994487544756331689213869675574302737953785262542329024881047181939037220666894702204258836895840939998453560948869946833852579675161882159410981624918741813364726965123980677561947912557957446471427868624053750576104204267149366084980238274680575982591331006919941904651906531171908926077949119217946407355129633864523035673345588033313197080365457184791550432654899559705862888286866606618021882248602144999973122164138170653480175510438406624412822803616648904257377640956326482825258407669045608439490325290526337532316509087681336614242398309530806549661879381949120033919489494065132398816642080088395554942237096734840072642705701165089075196155370186264797456381187856175457113400473810762763014953309735174180655479112660938034311378532532883533352024934365979129341284854970946826329075830193072665337782559314331110963848053940859283988907796210479847919686876539987477095912788727475874439806779824968278272200926449944559380414608770641941810440758269805688038949654616587983904660587645341810289907194293021774519976104495043196841503455514044820928933378657363052830619990077748726922998608279053171691876578860908941817057993404890218441559791092676862796597583952483926734883634745651687016166240642424241228961118010615682342539392180052483454723779219911228595914191877491793823340010078128326506710281781396029120914720100947878752551263372884222353869490067927664511634758101193875319657242121476038284774774571704578610417385747911301908583877890152334343013005282797038580359815182929600305682612091950943737325454171056383887047528950563961029843641360935641632589408137981511693338619797339821670761004607980096016024823096943043806956620123213650140549586250615282588033022908385812478469315720323233601899469437647726721879376826431828382603564520699468630216048874528424363593558622333506235945002890558581611275341783750455936126130852640828051213873177490200249552738734585956405160830583053770732533971552620444705429573538361113677523169972740292941674204423248113875075631319078272188864053374694213842169928862940479635305150560788126366206497231257579019598873041195626227343728900516561111094111745277965482790471250581999077498063821559376885546498822938985408291325129076478386322494781016753491693489288104203015610283386143827378160946341335383578340765314321417150655877547820252454780657301342277470616744241968952613164274104695474621483756288299771804186785084546965619150908695874251184435837306590951460980451247409411373899927822492983367796011015387096129749705566301637307202750734759922943792393824427421186158236161317886392553095117188421298508307238259729144142251579403883011359083331651858234967221259621812507058113759495525022747274674369887131926670769299199084467161228738858457584622726573330753735572823951616964175198675012681745429323738294143824814377139861906716657572945807804820559511881687188075212971832636442155336787751274766940790117057509819575084563565217389544179875074523854455200133572033332379895074393905312918212255259833790909463630202185353848854825062897715616963860712382771725621313460549401770413581731931763370136332252819127547191443450920711848838366818174263342949611870091503049165339464763717766439120798347494627397822171502090670190302469762151278521956142070806461631373236517853976292092025500288962012970141379640038055734949269073535145961208674796547733692958773628635660143767964038430796864138563447801328261284589184898528048048844180821639423974014362903481665458114454366460032490618763039502356402044530748210241366895196644221339200757479128683805175150634662569391937740283512075666260829890491877287833852178522792045771846965855278790447562192663992008409302075673925363735628390829817577902153202106409617373283598494066652141198183810884515459772895164572131897797907491941013148368544639616904607030107596818933741217575988165127000761262789169510406315857637534787420070222051070891257612361658026806815858499852631465878086616800733264676830206391697203064894405628195406190685242003053463156621891327309069687353181641094514288036605995220248248886711554429104721929134248346438705368508648749099178812670565665387191049721820042371492740164460943459845392536706132210616533085662021188968234005752675486101476993688738209584552211571923479686888160853631615862880150395949418529489227074410828207169303387818084936204018255222271010985653444817207470756019245915599431072949578197878590578940052540122867517142511184356437184053563024181225473266093302710397968091064939272722683035410467632591355279683837705019855234621222858410557119921731717969804339317707750755627056047831779844447637560254637033369247114220815519973691371975163241302748712199863404548248524570118553342675264715978310731245663429805221455494156252724028915333354349341217862037007260315279870771872491234494477147909520734761385425485311552773301030342476835865496093722324007154518129732692081058424090557725645803681462234493189708138897143299831347617799679712453782310703739151473878692119187566700319321281896803322696594459286210607438827416919465162267632540665070881071030394178860564893769816734159025925194611823642945652669372203155504700213598846292758012527715422016629954863130324912311029627923723899766416803497141226527931907636326136814145516376656559839788489381733082668779901962886932296597379951931621187215455287394170243669885593888793316744533363119541518404088283815193421234122820030950313341050704760159987985472529190665222479319715440331794836837373220821885773341623856441380700541913530245943913502554531886454796252260251762928374330465102361057583514550739443339610216229675461415781127197001738611494279501411253280621254775810512972088465263158094806633687670147310733540717710876615935856814098212967730759197382973441445256688770855324570888958320993823432102718224114763732791357568615421252849657903335093152776925505845644010552192644505312073756287744998163646332835816140330175813967359427327690448920361880386754955751806890058532927201493923500525845146706982628548257883267398735220457228239290207144822219885587102896991935873074277815159757620764023951243860202032596596250212578349957710085626386118233813318509014686577064010676278617583772772895892746039403930337271873850536912957126715066896688493880885142943609962012966759079225082275313812849851526902931700263136328942095797577959327635531162066753488651317323872438748063513314512644889967589828812925480076425186586490241111127301357197181381602583178506932244007998656635371544088454866393181708395735780799059730839094881804060935959190907473960904410150516321749681412100765719177483767355751000733616922386537429079457803200042337452807566153042929014495780629634138383551783599764708851349004856973697965238695845994595592090709058956891451141412684505462117945026611750166928260250950770778211950432617383223562437601776799362796099368975191394965033358507155418436456852616674243688920371037495328425927131610537834980740739158633817967658425258036737206469351248652238481341663808061505704829059890696451936440018597120425723007316410009916987524260377362177763430621616744884930810929901009517974541564251204822086714586849255132444266777127863728211331536224301091824391243380214046242223349153559516890816288487989988273630445372432174280215755777967021666317047969728172483392841015642274507271779269399929740308072770395013581545142494049026536105825409373114653104943382484379718606937214444600826798002471229489405761853892203425608302697052876621377373594394224114707074072902725461307358541745691419446487624357682397065703184168467540733466346293673983620004041400714054277632480132742202685393698869787607009590048684650626771363070979821006557285101306601010780633743344773073478653881742681230743766066643312775356466578603715192922768440458273283243808212841218776132042460464900801054731426749260826922155637405486241717031027919996942645620955619816454547662045022411449404749349832206807191352767986747813458203859570413466177937228534940031631599544093684089572533438702986717829770373332806801764639502090023941931499115009105276821119510999063166150311585582835582607179410052528583611369961303442790173811787412061288182062023263849861515656451230047792967563618345768105043341769543067538041113928553792529241347339481050532025708728186307291158911335942014761872664291564036371927602306283840650425441742335464549987055318726887926424102147363698625463747159744354943443899730051742525110877357886390946812096673428152585919924857640488055071329814299359911463239919113959926752576359007446572810191805841807342227734721397723218231771716916400108826112549093361186780575722391018186168549108500885272274374212086524852372456248697662245384819298671129452945515497030585919307198497105414181636968976131126744027009648667545934567059936995464500558921628047976365686133316563907395703272034389175415267500915011198856872708848195531676931681272892143031376818016445477367518353497857924276463354162433601125960252109501612264110346083465648235597934274056868849224458745493776752120324703803035491157544831295275891939893680876327685438769557694881422844311998595700727521393176837831770339130423060958999137314684569010422095161967070506420256733873446115655276175992727151877660010238944760539789516945708802728736225121076224091810066700883474737605156285533943565843756271241244457651663064085939507947550920463932245202535463634444791755661725962187199279186575490857852950012840229035061514937310107009446151011613712423761426722541732055959202782129325725947146417224977321316381845326555279604270541871496236585252458648933254145062642337885651464670604298564781968461593663288954299780722542264790400616019751975007460545150060291806638271497016110987951336633771378434416194053121445291855180136575558667615019373029691932076120009255065081583275508499340768797252369987023567931026804136745718956641431852679054717169962990363015545645090044802789055701968328313630718997699153166679208958768572290600915472919636381673596673959975710326015571920237348580521128117458610065152598883843114511894880552129145775699146577530041384717124577965048175856395072895337539755822087777506072339445587895905719156735) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected new file mode 100644 index 00000000..ef373193 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 96871400 +| mem: 801}) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.expected new file mode 100644 index 00000000..49127e38 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bytestring + #ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ) +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc new file mode 100644 index 00000000..cd5880c9 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc @@ -0,0 +1,5 @@ +-- Check that the maximum allowable input (2^65536-1) isn't accepted if the width is too small. +(program 1.0.0 + [(builtin integerToByteString) (con bool True) (con integer 8191) (con integer 2003529930406846464979072351560255750447825475569751419265016973710894059556311453089506130880933348101038234342907263181822949382118812668869506364761547029165041871916351587966347219442930927982084309104855990570159318959639524863372367203002916969592156108764948889254090805911457037675208500206671563702366126359747144807111774815880914135742720967190151836282560618091458852699826141425030123391108273603843767876449043205960379124490905707560314035076162562476031863793126484703743782954975613770981604614413308692118102485959152380195331030292162800160568670105651646750568038741529463842244845292537361442533614373729088303794601274724958414864915930647252015155693922628180691650796381064132275307267143998158508811292628901134237782705567421080070065283963322155077831214288551675554073345107213112427399562982719769150054883905223804357045848197956393157853510018992000024141963706813559840464039472194016069517690156119726982337890017641517190051133466306898140219383481435426387306539552969691388024158161859561100640362119796101859534802787167200122604642492385111393400464351623867567078745259464670903886547743483217897012764455529409092021959585751622973333576159552394885297579954028471943529913543763705986928913757153740001986394332464890052543106629669165243419174691389632476560289415199775477703138064781342309596190960654591300890188887588084733625956065444888501447335706058817090162108499714529568344061979690565469813631162053579369791403236328496233046421066136200220175787851857409162050489711781820400187282939943446186224328009837323764931814789848119452713007440220765680910376203999203492023906626264491909167985461515778839060397720759279378852241294301017458086862263369284725851403039615558564330385450688652213114813638408384778263790459607186876728509763471271988890680478243230394718650525660978150729861141430305816927924971409161059417185352275887504477592218301158780701975535722241400019548102005661773589781499532325208589753463547007786690406429016763808161740550405117670093673202804549339027992491867306539931640720492238474815280619166900933805732120816350707634351669869625020969023162859350071874190579161241536897514808261904847946571736601005892476655445840838334790544144817684255327207315586349347605137419779525190365032198020108764738368682531025183377533908861426184800374008082238104076468878471647552945326947661700424461063311238021134588694532200116564076327023074292426051582811070387018345324567635625951430032037432740780879056283663406965030844225855967039271869461158513793386475699748568670079823960604393478850861649260304945061743412365828352144806726676841807083754862211408236579802961200027441324438432402331257403545019352428776430880232850855886089962774458164680857875115807014743763867976955049991643998284357290415378143438847303484261903388841494031366139854257635577105335580206622185577060082551288893332226436281984838613239570676191409638533832374343758830859233722284644287996245605476932428998432652677378373173288063210753211238680604674708428051166488709084770291208161104912555598322366244868556651402684641209694982590565519216188104341226838996283071654868525536914850299539675503954938371853405900096187489473992880432496373165753803673586710175783994818471798498246948060532081996066183434012476096639519778021441199752546704080608499344178256285092726523709898651539462193004607364507926212975917698293892367015170992091531567814439791248475706237804600009918293321306880570046591458387208088016887445835557926258465124763087148566313528934166117490617526671492672176128330845273936469244582892571388877839056300482483799839692029222215486145902373478222682521639957440801727144146179559226175083889020074169926238300282286249284182671243405751424188569994272331606998712986882771820617214453142574944015066139463169197629181506579745526236191224848063890033669074365989226349564114665503062965960199720636202603521917776740668777463549375318899587866282125469797102065747232721372918144666659421872003474508942830911535189271114287108376159222380276605327823351661555149369375778466670145717971901227117812780450240026384758788339396817962950690798817121690686929538248529830023476068454114178139110648560236549754227497231007615131870024053910510913817843721791422528587432098524957878034683703337818421444017138688124249984418618129271198533315382567321870421530631197748535214670955334626336610864667332292409879849256691109516143618601548909740241913509623043612196128165950518666022030715613684732364660868905014263913906515063908199378852318365059897299125404479443425166774299659811849233151555272883274028352688442408752811283289980625912673699546247341543333500147231430612750390307397135252069338173843322950701049061867539433130784798015655130384758155685236218010419650255596181934986315913233036096461905990236112681196023441843363334594927631946101716652913823717182394299216272538461776065694542297877071383198817036964588689811863210976900355735884624464835706291453052757101278872027965364479724025405448132748391794128826423835171949197209797145936887537198729130831738033911016128547415377377715951728084111627597186384924222802373441925469991983672192131287035585307966942713416391033882754318613643490100943197409047331014476299861725424423355612237435715825933382804986243892498222780715951762757847109475119033482241412025182688713728193104253478196128440176479531505057110722974314569915223451643121848657575786528197564843508958384722923534559464521215831657751471298708225909292655638836651120681943836904116252668710044560243704200663709001941185557160472044643696932850060046928140507119069261393993902735534545567470314903886022024639948260501762431969305640666366626090207048887438898907498152865444381862917382901051820869936382661868303915273264581286782806601337500096593364625146091723180312930347877421234679118454791311109897794648216922505629399956793483801699157439700537542134485874586856047286751065423341893839099110586465595113646061055156838541217459801807133163612573079611168343863767667307354583494789788316330129240800836356825939157113130978030516441716682518346573675934198084958947940983292500086389778563494693212473426103062713745077286156922596628573857905533240641849018451328284632709269753830867308409142247659474439973348130810986399417379789657010687026734161967196591599588537834822988270125605842365589539690306474965584147981310997157542043256395776070485100881578291408250777738559790129129407309462785944505859412273194812753225152324801503466519048228961406646890305102510916237770448486230229488966711380555607956620732449373374027836767300203011615227008921843515652121379215748206859356920790214502277133099987729459596952817044582181956080965811702798062669891205061560742325686842271306295009864421853470810407128917646906550836129916694778023822502789667843489199409657361704586786242554006942516693979292624714524945408858422726153755260071904336329196375777502176005195800693847635789586878489536872122898557806826518192703632099480155874455575175312736471421295536494084385586615208012115079075068553344489258693283859653013272046970694571546959353658571788894862333292465202735853188533370948455403336565356988172582528918056635488363743793348411845580168331827676834646291995605513470039147876808640322629616641560667508153710646723108461964247537490553744805318226002710216400980584497526023035640038083472053149941172965736785066421400842696497103241919182121213206939769143923368374709228267738708132236680086924703491586840991153098315412063566123187504305467536983230827966457417620806593177265685841681837966106144963432544111706941700222657817358351259821080769101961052229263879745049019254311900620561906577452416191913187533984049343976823310298465893318373015809592522829206820862230332585280119266496314441316442773003237792274712330696417149945532261035475145631290668854345426869788447742981777493710117614651624183616680254815296335308490849943006763654806102940094693750609845588558043970485914449584445079978497045583550685408745163316464118083123079704389849190506587586425810738422420591191941674182490452700288263983057950057341711487031187142834184499153456702915280104485145176055306971441761368582384102787659324662689978418319620312262421177391477208004883578333569204533935953254564897028558589735505751235129536540502842081022785248776603574246366673148680279486052445782673626230852978265057114624846595914210278122788941448163994973881884622768244851622051817076722169863265701654316919742651230041757329904473537672536845792754365412826553581858046840069367718605020070547247548400805530424951854495267247261347318174742180078574693465447136036975884118029408039616746946288540679172138601225419503819704538417268006398820656328792839582708510919958839448297775647152026132871089526163417707151642899487953564854553553148754978134009964854498635824847690590033116961303766127923464323129706628411307427046202032013368350385425360313636763575212604707425311209233402837482949453104727418969287275572027615272268283376741393425652653283068469997597097750005560889932685025049212884068274139881631540456490350775871680074055685724021758685439053228133770707415830756269628316955687424060527726485853050611356384851965918968649596335568216975437621430778665934730450164822432964891270709898076676625671517269062058815549666382573829274182082278960684488222983394816670984039024283514306813767253460126007269262969468672750794346190439996618979611928750519442356402644303271737341591281496056168353988188569484045342311424613559925272330064881627466723523751234311893442118885085079358163848994487544756331689213869675574302737953785262542329024881047181939037220666894702204258836895840939998453560948869946833852579675161882159410981624918741813364726965123980677561947912557957446471427868624053750576104204267149366084980238274680575982591331006919941904651906531171908926077949119217946407355129633864523035673345588033313197080365457184791550432654899559705862888286866606618021882248602144999973122164138170653480175510438406624412822803616648904257377640956326482825258407669045608439490325290526337532316509087681336614242398309530806549661879381949120033919489494065132398816642080088395554942237096734840072642705701165089075196155370186264797456381187856175457113400473810762763014953309735174180655479112660938034311378532532883533352024934365979129341284854970946826329075830193072665337782559314331110963848053940859283988907796210479847919686876539987477095912788727475874439806779824968278272200926449944559380414608770641941810440758269805688038949654616587983904660587645341810289907194293021774519976104495043196841503455514044820928933378657363052830619990077748726922998608279053171691876578860908941817057993404890218441559791092676862796597583952483926734883634745651687016166240642424241228961118010615682342539392180052483454723779219911228595914191877491793823340010078128326506710281781396029120914720100947878752551263372884222353869490067927664511634758101193875319657242121476038284774774571704578610417385747911301908583877890152334343013005282797038580359815182929600305682612091950943737325454171056383887047528950563961029843641360935641632589408137981511693338619797339821670761004607980096016024823096943043806956620123213650140549586250615282588033022908385812478469315720323233601899469437647726721879376826431828382603564520699468630216048874528424363593558622333506235945002890558581611275341783750455936126130852640828051213873177490200249552738734585956405160830583053770732533971552620444705429573538361113677523169972740292941674204423248113875075631319078272188864053374694213842169928862940479635305150560788126366206497231257579019598873041195626227343728900516561111094111745277965482790471250581999077498063821559376885546498822938985408291325129076478386322494781016753491693489288104203015610283386143827378160946341335383578340765314321417150655877547820252454780657301342277470616744241968952613164274104695474621483756288299771804186785084546965619150908695874251184435837306590951460980451247409411373899927822492983367796011015387096129749705566301637307202750734759922943792393824427421186158236161317886392553095117188421298508307238259729144142251579403883011359083331651858234967221259621812507058113759495525022747274674369887131926670769299199084467161228738858457584622726573330753735572823951616964175198675012681745429323738294143824814377139861906716657572945807804820559511881687188075212971832636442155336787751274766940790117057509819575084563565217389544179875074523854455200133572033332379895074393905312918212255259833790909463630202185353848854825062897715616963860712382771725621313460549401770413581731931763370136332252819127547191443450920711848838366818174263342949611870091503049165339464763717766439120798347494627397822171502090670190302469762151278521956142070806461631373236517853976292092025500288962012970141379640038055734949269073535145961208674796547733692958773628635660143767964038430796864138563447801328261284589184898528048048844180821639423974014362903481665458114454366460032490618763039502356402044530748210241366895196644221339200757479128683805175150634662569391937740283512075666260829890491877287833852178522792045771846965855278790447562192663992008409302075673925363735628390829817577902153202106409617373283598494066652141198183810884515459772895164572131897797907491941013148368544639616904607030107596818933741217575988165127000761262789169510406315857637534787420070222051070891257612361658026806815858499852631465878086616800733264676830206391697203064894405628195406190685242003053463156621891327309069687353181641094514288036605995220248248886711554429104721929134248346438705368508648749099178812670565665387191049721820042371492740164460943459845392536706132210616533085662021188968234005752675486101476993688738209584552211571923479686888160853631615862880150395949418529489227074410828207169303387818084936204018255222271010985653444817207470756019245915599431072949578197878590578940052540122867517142511184356437184053563024181225473266093302710397968091064939272722683035410467632591355279683837705019855234621222858410557119921731717969804339317707750755627056047831779844447637560254637033369247114220815519973691371975163241302748712199863404548248524570118553342675264715978310731245663429805221455494156252724028915333354349341217862037007260315279870771872491234494477147909520734761385425485311552773301030342476835865496093722324007154518129732692081058424090557725645803681462234493189708138897143299831347617799679712453782310703739151473878692119187566700319321281896803322696594459286210607438827416919465162267632540665070881071030394178860564893769816734159025925194611823642945652669372203155504700213598846292758012527715422016629954863130324912311029627923723899766416803497141226527931907636326136814145516376656559839788489381733082668779901962886932296597379951931621187215455287394170243669885593888793316744533363119541518404088283815193421234122820030950313341050704760159987985472529190665222479319715440331794836837373220821885773341623856441380700541913530245943913502554531886454796252260251762928374330465102361057583514550739443339610216229675461415781127197001738611494279501411253280621254775810512972088465263158094806633687670147310733540717710876615935856814098212967730759197382973441445256688770855324570888958320993823432102718224114763732791357568615421252849657903335093152776925505845644010552192644505312073756287744998163646332835816140330175813967359427327690448920361880386754955751806890058532927201493923500525845146706982628548257883267398735220457228239290207144822219885587102896991935873074277815159757620764023951243860202032596596250212578349957710085626386118233813318509014686577064010676278617583772772895892746039403930337271873850536912957126715066896688493880885142943609962012966759079225082275313812849851526902931700263136328942095797577959327635531162066753488651317323872438748063513314512644889967589828812925480076425186586490241111127301357197181381602583178506932244007998656635371544088454866393181708395735780799059730839094881804060935959190907473960904410150516321749681412100765719177483767355751000733616922386537429079457803200042337452807566153042929014495780629634138383551783599764708851349004856973697965238695845994595592090709058956891451141412684505462117945026611750166928260250950770778211950432617383223562437601776799362796099368975191394965033358507155418436456852616674243688920371037495328425927131610537834980740739158633817967658425258036737206469351248652238481341663808061505704829059890696451936440018597120425723007316410009916987524260377362177763430621616744884930810929901009517974541564251204822086714586849255132444266777127863728211331536224301091824391243380214046242223349153559516890816288487989988273630445372432174280215755777967021666317047969728172483392841015642274507271779269399929740308072770395013581545142494049026536105825409373114653104943382484379718606937214444600826798002471229489405761853892203425608302697052876621377373594394224114707074072902725461307358541745691419446487624357682397065703184168467540733466346293673983620004041400714054277632480132742202685393698869787607009590048684650626771363070979821006557285101306601010780633743344773073478653881742681230743766066643312775356466578603715192922768440458273283243808212841218776132042460464900801054731426749260826922155637405486241717031027919996942645620955619816454547662045022411449404749349832206807191352767986747813458203859570413466177937228534940031631599544093684089572533438702986717829770373332806801764639502090023941931499115009105276821119510999063166150311585582835582607179410052528583611369961303442790173811787412061288182062023263849861515656451230047792967563618345768105043341769543067538041113928553792529241347339481050532025708728186307291158911335942014761872664291564036371927602306283840650425441742335464549987055318726887926424102147363698625463747159744354943443899730051742525110877357886390946812096673428152585919924857640488055071329814299359911463239919113959926752576359007446572810191805841807342227734721397723218231771716916400108826112549093361186780575722391018186168549108500885272274374212086524852372456248697662245384819298671129452945515497030585919307198497105414181636968976131126744027009648667545934567059936995464500558921628047976365686133316563907395703272034389175415267500915011198856872708848195531676931681272892143031376818016445477367518353497857924276463354162433601125960252109501612264110346083465648235597934274056868849224458745493776752120324703803035491157544831295275891939893680876327685438769557694881422844311998595700727521393176837831770339130423060958999137314684569010422095161967070506420256733873446115655276175992727151877660010238944760539789516945708802728736225121076224091810066700883474737605156285533943565843756271241244457651663064085939507947550920463932245202535463634444791755661725962187199279186575490857852950012840229035061514937310107009446151011613712423761426722541732055959202782129325725947146417224977321316381845326555279604270541871496236585252458648933254145062642337885651464670604298564781968461593663288954299780722542264790400616019751975007460545150060291806638271497016110987951336633771378434416194053121445291855180136575558667615019373029691932076120009255065081583275508499340768797252369987023567931026804136745718956641431852679054717169962990363015545645090044802789055701968328313630718997699153166679208958768572290600915472919636381673596673959975710326015571920237348580521128117458610065152598883843114511894880552129145775699146577530041384717124577965048175856395072895337539755822087777506072339445587895905719156731) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc new file mode 100644 index 00000000..6a62db89 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc @@ -0,0 +1,5 @@ +-- Check that one more than the maximum allowable input (ie, 2^65536) doesn't fit into the maximum width. +(program 1.0.0 + [(builtin integerToByteString) (con bool True) (con integer 8192) (con integer 2003529930406846464979072351560255750447825475569751419265016973710894059556311453089506130880933348101038234342907263181822949382118812668869506364761547029165041871916351587966347219442930927982084309104855990570159318959639524863372367203002916969592156108764948889254090805911457037675208500206671563702366126359747144807111774815880914135742720967190151836282560618091458852699826141425030123391108273603843767876449043205960379124490905707560314035076162562476031863793126484703743782954975613770981604614413308692118102485959152380195331030292162800160568670105651646750568038741529463842244845292537361442533614373729088303794601274724958414864915930647252015155693922628180691650796381064132275307267143998158508811292628901134237782705567421080070065283963322155077831214288551675554073345107213112427399562982719769150054883905223804357045848197956393157853510018992000024141963706813559840464039472194016069517690156119726982337890017641517190051133466306898140219383481435426387306539552969691388024158161859561100640362119796101859534802787167200122604642492385111393400464351623867567078745259464670903886547743483217897012764455529409092021959585751622973333576159552394885297579954028471943529913543763705986928913757153740001986394332464890052543106629669165243419174691389632476560289415199775477703138064781342309596190960654591300890188887588084733625956065444888501447335706058817090162108499714529568344061979690565469813631162053579369791403236328496233046421066136200220175787851857409162050489711781820400187282939943446186224328009837323764931814789848119452713007440220765680910376203999203492023906626264491909167985461515778839060397720759279378852241294301017458086862263369284725851403039615558564330385450688652213114813638408384778263790459607186876728509763471271988890680478243230394718650525660978150729861141430305816927924971409161059417185352275887504477592218301158780701975535722241400019548102005661773589781499532325208589753463547007786690406429016763808161740550405117670093673202804549339027992491867306539931640720492238474815280619166900933805732120816350707634351669869625020969023162859350071874190579161241536897514808261904847946571736601005892476655445840838334790544144817684255327207315586349347605137419779525190365032198020108764738368682531025183377533908861426184800374008082238104076468878471647552945326947661700424461063311238021134588694532200116564076327023074292426051582811070387018345324567635625951430032037432740780879056283663406965030844225855967039271869461158513793386475699748568670079823960604393478850861649260304945061743412365828352144806726676841807083754862211408236579802961200027441324438432402331257403545019352428776430880232850855886089962774458164680857875115807014743763867976955049991643998284357290415378143438847303484261903388841494031366139854257635577105335580206622185577060082551288893332226436281984838613239570676191409638533832374343758830859233722284644287996245605476932428998432652677378373173288063210753211238680604674708428051166488709084770291208161104912555598322366244868556651402684641209694982590565519216188104341226838996283071654868525536914850299539675503954938371853405900096187489473992880432496373165753803673586710175783994818471798498246948060532081996066183434012476096639519778021441199752546704080608499344178256285092726523709898651539462193004607364507926212975917698293892367015170992091531567814439791248475706237804600009918293321306880570046591458387208088016887445835557926258465124763087148566313528934166117490617526671492672176128330845273936469244582892571388877839056300482483799839692029222215486145902373478222682521639957440801727144146179559226175083889020074169926238300282286249284182671243405751424188569994272331606998712986882771820617214453142574944015066139463169197629181506579745526236191224848063890033669074365989226349564114665503062965960199720636202603521917776740668777463549375318899587866282125469797102065747232721372918144666659421872003474508942830911535189271114287108376159222380276605327823351661555149369375778466670145717971901227117812780450240026384758788339396817962950690798817121690686929538248529830023476068454114178139110648560236549754227497231007615131870024053910510913817843721791422528587432098524957878034683703337818421444017138688124249984418618129271198533315382567321870421530631197748535214670955334626336610864667332292409879849256691109516143618601548909740241913509623043612196128165950518666022030715613684732364660868905014263913906515063908199378852318365059897299125404479443425166774299659811849233151555272883274028352688442408752811283289980625912673699546247341543333500147231430612750390307397135252069338173843322950701049061867539433130784798015655130384758155685236218010419650255596181934986315913233036096461905990236112681196023441843363334594927631946101716652913823717182394299216272538461776065694542297877071383198817036964588689811863210976900355735884624464835706291453052757101278872027965364479724025405448132748391794128826423835171949197209797145936887537198729130831738033911016128547415377377715951728084111627597186384924222802373441925469991983672192131287035585307966942713416391033882754318613643490100943197409047331014476299861725424423355612237435715825933382804986243892498222780715951762757847109475119033482241412025182688713728193104253478196128440176479531505057110722974314569915223451643121848657575786528197564843508958384722923534559464521215831657751471298708225909292655638836651120681943836904116252668710044560243704200663709001941185557160472044643696932850060046928140507119069261393993902735534545567470314903886022024639948260501762431969305640666366626090207048887438898907498152865444381862917382901051820869936382661868303915273264581286782806601337500096593364625146091723180312930347877421234679118454791311109897794648216922505629399956793483801699157439700537542134485874586856047286751065423341893839099110586465595113646061055156838541217459801807133163612573079611168343863767667307354583494789788316330129240800836356825939157113130978030516441716682518346573675934198084958947940983292500086389778563494693212473426103062713745077286156922596628573857905533240641849018451328284632709269753830867308409142247659474439973348130810986399417379789657010687026734161967196591599588537834822988270125605842365589539690306474965584147981310997157542043256395776070485100881578291408250777738559790129129407309462785944505859412273194812753225152324801503466519048228961406646890305102510916237770448486230229488966711380555607956620732449373374027836767300203011615227008921843515652121379215748206859356920790214502277133099987729459596952817044582181956080965811702798062669891205061560742325686842271306295009864421853470810407128917646906550836129916694778023822502789667843489199409657361704586786242554006942516693979292624714524945408858422726153755260071904336329196375777502176005195800693847635789586878489536872122898557806826518192703632099480155874455575175312736471421295536494084385586615208012115079075068553344489258693283859653013272046970694571546959353658571788894862333292465202735853188533370948455403336565356988172582528918056635488363743793348411845580168331827676834646291995605513470039147876808640322629616641560667508153710646723108461964247537490553744805318226002710216400980584497526023035640038083472053149941172965736785066421400842696497103241919182121213206939769143923368374709228267738708132236680086924703491586840991153098315412063566123187504305467536983230827966457417620806593177265685841681837966106144963432544111706941700222657817358351259821080769101961052229263879745049019254311900620561906577452416191913187533984049343976823310298465893318373015809592522829206820862230332585280119266496314441316442773003237792274712330696417149945532261035475145631290668854345426869788447742981777493710117614651624183616680254815296335308490849943006763654806102940094693750609845588558043970485914449584445079978497045583550685408745163316464118083123079704389849190506587586425810738422420591191941674182490452700288263983057950057341711487031187142834184499153456702915280104485145176055306971441761368582384102787659324662689978418319620312262421177391477208004883578333569204533935953254564897028558589735505751235129536540502842081022785248776603574246366673148680279486052445782673626230852978265057114624846595914210278122788941448163994973881884622768244851622051817076722169863265701654316919742651230041757329904473537672536845792754365412826553581858046840069367718605020070547247548400805530424951854495267247261347318174742180078574693465447136036975884118029408039616746946288540679172138601225419503819704538417268006398820656328792839582708510919958839448297775647152026132871089526163417707151642899487953564854553553148754978134009964854498635824847690590033116961303766127923464323129706628411307427046202032013368350385425360313636763575212604707425311209233402837482949453104727418969287275572027615272268283376741393425652653283068469997597097750005560889932685025049212884068274139881631540456490350775871680074055685724021758685439053228133770707415830756269628316955687424060527726485853050611356384851965918968649596335568216975437621430778665934730450164822432964891270709898076676625671517269062058815549666382573829274182082278960684488222983394816670984039024283514306813767253460126007269262969468672750794346190439996618979611928750519442356402644303271737341591281496056168353988188569484045342311424613559925272330064881627466723523751234311893442118885085079358163848994487544756331689213869675574302737953785262542329024881047181939037220666894702204258836895840939998453560948869946833852579675161882159410981624918741813364726965123980677561947912557957446471427868624053750576104204267149366084980238274680575982591331006919941904651906531171908926077949119217946407355129633864523035673345588033313197080365457184791550432654899559705862888286866606618021882248602144999973122164138170653480175510438406624412822803616648904257377640956326482825258407669045608439490325290526337532316509087681336614242398309530806549661879381949120033919489494065132398816642080088395554942237096734840072642705701165089075196155370186264797456381187856175457113400473810762763014953309735174180655479112660938034311378532532883533352024934365979129341284854970946826329075830193072665337782559314331110963848053940859283988907796210479847919686876539987477095912788727475874439806779824968278272200926449944559380414608770641941810440758269805688038949654616587983904660587645341810289907194293021774519976104495043196841503455514044820928933378657363052830619990077748726922998608279053171691876578860908941817057993404890218441559791092676862796597583952483926734883634745651687016166240642424241228961118010615682342539392180052483454723779219911228595914191877491793823340010078128326506710281781396029120914720100947878752551263372884222353869490067927664511634758101193875319657242121476038284774774571704578610417385747911301908583877890152334343013005282797038580359815182929600305682612091950943737325454171056383887047528950563961029843641360935641632589408137981511693338619797339821670761004607980096016024823096943043806956620123213650140549586250615282588033022908385812478469315720323233601899469437647726721879376826431828382603564520699468630216048874528424363593558622333506235945002890558581611275341783750455936126130852640828051213873177490200249552738734585956405160830583053770732533971552620444705429573538361113677523169972740292941674204423248113875075631319078272188864053374694213842169928862940479635305150560788126366206497231257579019598873041195626227343728900516561111094111745277965482790471250581999077498063821559376885546498822938985408291325129076478386322494781016753491693489288104203015610283386143827378160946341335383578340765314321417150655877547820252454780657301342277470616744241968952613164274104695474621483756288299771804186785084546965619150908695874251184435837306590951460980451247409411373899927822492983367796011015387096129749705566301637307202750734759922943792393824427421186158236161317886392553095117188421298508307238259729144142251579403883011359083331651858234967221259621812507058113759495525022747274674369887131926670769299199084467161228738858457584622726573330753735572823951616964175198675012681745429323738294143824814377139861906716657572945807804820559511881687188075212971832636442155336787751274766940790117057509819575084563565217389544179875074523854455200133572033332379895074393905312918212255259833790909463630202185353848854825062897715616963860712382771725621313460549401770413581731931763370136332252819127547191443450920711848838366818174263342949611870091503049165339464763717766439120798347494627397822171502090670190302469762151278521956142070806461631373236517853976292092025500288962012970141379640038055734949269073535145961208674796547733692958773628635660143767964038430796864138563447801328261284589184898528048048844180821639423974014362903481665458114454366460032490618763039502356402044530748210241366895196644221339200757479128683805175150634662569391937740283512075666260829890491877287833852178522792045771846965855278790447562192663992008409302075673925363735628390829817577902153202106409617373283598494066652141198183810884515459772895164572131897797907491941013148368544639616904607030107596818933741217575988165127000761262789169510406315857637534787420070222051070891257612361658026806815858499852631465878086616800733264676830206391697203064894405628195406190685242003053463156621891327309069687353181641094514288036605995220248248886711554429104721929134248346438705368508648749099178812670565665387191049721820042371492740164460943459845392536706132210616533085662021188968234005752675486101476993688738209584552211571923479686888160853631615862880150395949418529489227074410828207169303387818084936204018255222271010985653444817207470756019245915599431072949578197878590578940052540122867517142511184356437184053563024181225473266093302710397968091064939272722683035410467632591355279683837705019855234621222858410557119921731717969804339317707750755627056047831779844447637560254637033369247114220815519973691371975163241302748712199863404548248524570118553342675264715978310731245663429805221455494156252724028915333354349341217862037007260315279870771872491234494477147909520734761385425485311552773301030342476835865496093722324007154518129732692081058424090557725645803681462234493189708138897143299831347617799679712453782310703739151473878692119187566700319321281896803322696594459286210607438827416919465162267632540665070881071030394178860564893769816734159025925194611823642945652669372203155504700213598846292758012527715422016629954863130324912311029627923723899766416803497141226527931907636326136814145516376656559839788489381733082668779901962886932296597379951931621187215455287394170243669885593888793316744533363119541518404088283815193421234122820030950313341050704760159987985472529190665222479319715440331794836837373220821885773341623856441380700541913530245943913502554531886454796252260251762928374330465102361057583514550739443339610216229675461415781127197001738611494279501411253280621254775810512972088465263158094806633687670147310733540717710876615935856814098212967730759197382973441445256688770855324570888958320993823432102718224114763732791357568615421252849657903335093152776925505845644010552192644505312073756287744998163646332835816140330175813967359427327690448920361880386754955751806890058532927201493923500525845146706982628548257883267398735220457228239290207144822219885587102896991935873074277815159757620764023951243860202032596596250212578349957710085626386118233813318509014686577064010676278617583772772895892746039403930337271873850536912957126715066896688493880885142943609962012966759079225082275313812849851526902931700263136328942095797577959327635531162066753488651317323872438748063513314512644889967589828812925480076425186586490241111127301357197181381602583178506932244007998656635371544088454866393181708395735780799059730839094881804060935959190907473960904410150516321749681412100765719177483767355751000733616922386537429079457803200042337452807566153042929014495780629634138383551783599764708851349004856973697965238695845994595592090709058956891451141412684505462117945026611750166928260250950770778211950432617383223562437601776799362796099368975191394965033358507155418436456852616674243688920371037495328425927131610537834980740739158633817967658425258036737206469351248652238481341663808061505704829059890696451936440018597120425723007316410009916987524260377362177763430621616744884930810929901009517974541564251204822086714586849255132444266777127863728211331536224301091824391243380214046242223349153559516890816288487989988273630445372432174280215755777967021666317047969728172483392841015642274507271779269399929740308072770395013581545142494049026536105825409373114653104943382484379718606937214444600826798002471229489405761853892203425608302697052876621377373594394224114707074072902725461307358541745691419446487624357682397065703184168467540733466346293673983620004041400714054277632480132742202685393698869787607009590048684650626771363070979821006557285101306601010780633743344773073478653881742681230743766066643312775356466578603715192922768440458273283243808212841218776132042460464900801054731426749260826922155637405486241717031027919996942645620955619816454547662045022411449404749349832206807191352767986747813458203859570413466177937228534940031631599544093684089572533438702986717829770373332806801764639502090023941931499115009105276821119510999063166150311585582835582607179410052528583611369961303442790173811787412061288182062023263849861515656451230047792967563618345768105043341769543067538041113928553792529241347339481050532025708728186307291158911335942014761872664291564036371927602306283840650425441742335464549987055318726887926424102147363698625463747159744354943443899730051742525110877357886390946812096673428152585919924857640488055071329814299359911463239919113959926752576359007446572810191805841807342227734721397723218231771716916400108826112549093361186780575722391018186168549108500885272274374212086524852372456248697662245384819298671129452945515497030585919307198497105414181636968976131126744027009648667545934567059936995464500558921628047976365686133316563907395703272034389175415267500915011198856872708848195531676931681272892143031376818016445477367518353497857924276463354162433601125960252109501612264110346083465648235597934274056868849224458745493776752120324703803035491157544831295275891939893680876327685438769557694881422844311998595700727521393176837831770339130423060958999137314684569010422095161967070506420256733873446115655276175992727151877660010238944760539789516945708802728736225121076224091810066700883474737605156285533943565843756271241244457651663064085939507947550920463932245202535463634444791755661725962187199279186575490857852950012840229035061514937310107009446151011613712423761426722541732055959202782129325725947146417224977321316381845326555279604270541871496236585252458648933254145062642337885651464670604298564781968461593663288954299780722542264790400616019751975007460545150060291806638271497016110987951336633771378434416194053121445291855180136575558667615019373029691932076120009255065081583275508499340768797252369987023567931026804136745718956641431852679054717169962990363015545645090044802789055701968328313630718997699153166679208958768572290600915472919636381673596673959975710326015571920237348580521128117458610065152598883843114511894880552129145775699146577530041384717124577965048175856395072895337539755822087777506072339445587895905719156736) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc new file mode 100644 index 00000000..abe3367a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc @@ -0,0 +1,4 @@ +-- Check that we can encode zero using the maximum width (8192). +(program 1.0.0 + [(builtin integerToByteString) (con bool True) (con integer 8192) (con integer 0)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected new file mode 100644 index 00000000..ce3a2a71 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1434707 +| mem: 801}) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.expected new file mode 100644 index 00000000..3537d195 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bytestring + #0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + ) +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/negative-input/negative-input.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/negative-input/negative-input.uplc new file mode 100644 index 00000000..83c02e59 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/negative-input/negative-input.uplc @@ -0,0 +1,4 @@ +-- Negative inputs give an error +(program 1.0.0 + [(builtin integerToByteString) (con bool True) (con integer 20) (con integer -5)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/negative-input/negative-input.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/negative-input/negative-input.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/negative-input/negative-input.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/negative-input/negative-input.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/negative-input/negative-input.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/negative-input/negative-input.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/negative-width/negative-width.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/negative-width/negative-width.uplc new file mode 100644 index 00000000..5e81bc95 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/negative-width/negative-width.uplc @@ -0,0 +1,4 @@ +-- Negative widths give an error +(program 1.0.0 + [(builtin integerToByteString) (con bool True) (con integer -20) (con integer 5)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/negative-width/negative-width.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/negative-width/negative-width.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/negative-width/negative-width.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/negative-width/negative-width.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/negative-width/negative-width.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/negative-width/negative-width.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/too-narrow/too-narrow.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/too-narrow/too-narrow.uplc new file mode 100644 index 00000000..49cfa2b2 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/too-narrow/too-narrow.uplc @@ -0,0 +1,4 @@ +-- Check that trying to encode an integer to a bytestring using too narrow a width fails. +(program 1.0.0 + [(builtin integerToByteString) (con bool True) (con integer 5) (con integer 20016001699311)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/too-narrow/too-narrow.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/too-narrow/too-narrow.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/too-narrow/too-narrow.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/too-narrow/too-narrow.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/too-narrow/too-narrow.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/too-narrow/too-narrow.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/width-too-big-zero/width-too-big-zero.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/width-too-big-zero/width-too-big-zero.uplc new file mode 100644 index 00000000..f7cfd3e4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/width-too-big-zero/width-too-big-zero.uplc @@ -0,0 +1,4 @@ +-- Check that a width greater than the maximum of 8192 is rejected when encoding zero. +(program 1.0.0 + [(builtin integerToByteString) (con bool True) (con integer 8193) (con integer 0)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc new file mode 100644 index 00000000..d79f279e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc @@ -0,0 +1,4 @@ +-- Zero should encode to a bytestring consisting entirely of zero bytes. +(program 1.0.0 + [(builtin integerToByteString) (con bool True) (con integer 12) (con integer 0)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc.budget.expected new file mode 100644 index 00000000..ce3a2a71 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1434707 +| mem: 801}) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc.expected new file mode 100644 index 00000000..be51b470 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bytestring #000000000000000000000000)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc new file mode 100644 index 00000000..c84f0091 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc @@ -0,0 +1,4 @@ +-- Check that a particular integer encodes to the expected bytestring +(program 1.0.0 + [(builtin integerToByteString) (con bool True) (con integer 0) (con integer 20016001699311)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc.budget.expected new file mode 100644 index 00000000..0bc43be7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1434707 +| mem: 801}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc.expected new file mode 100644 index 00000000..44e88935 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bytestring #123456abcdef)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/input-too-big/input-too-big.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/input-too-big/input-too-big.uplc new file mode 100644 index 00000000..28143160 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/input-too-big/input-too-big.uplc @@ -0,0 +1,5 @@ +-- Check that one more than the maximum allowable input (ie, 2^65536) is rejected. +(program 1.0.0 + [(builtin integerToByteString) (con bool True) (con integer 0) (con integer 2003529930406846464979072351560255750447825475569751419265016973710894059556311453089506130880933348101038234342907263181822949382118812668869506364761547029165041871916351587966347219442930927982084309104855990570159318959639524863372367203002916969592156108764948889254090805911457037675208500206671563702366126359747144807111774815880914135742720967190151836282560618091458852699826141425030123391108273603843767876449043205960379124490905707560314035076162562476031863793126484703743782954975613770981604614413308692118102485959152380195331030292162800160568670105651646750568038741529463842244845292537361442533614373729088303794601274724958414864915930647252015155693922628180691650796381064132275307267143998158508811292628901134237782705567421080070065283963322155077831214288551675554073345107213112427399562982719769150054883905223804357045848197956393157853510018992000024141963706813559840464039472194016069517690156119726982337890017641517190051133466306898140219383481435426387306539552969691388024158161859561100640362119796101859534802787167200122604642492385111393400464351623867567078745259464670903886547743483217897012764455529409092021959585751622973333576159552394885297579954028471943529913543763705986928913757153740001986394332464890052543106629669165243419174691389632476560289415199775477703138064781342309596190960654591300890188887588084733625956065444888501447335706058817090162108499714529568344061979690565469813631162053579369791403236328496233046421066136200220175787851857409162050489711781820400187282939943446186224328009837323764931814789848119452713007440220765680910376203999203492023906626264491909167985461515778839060397720759279378852241294301017458086862263369284725851403039615558564330385450688652213114813638408384778263790459607186876728509763471271988890680478243230394718650525660978150729861141430305816927924971409161059417185352275887504477592218301158780701975535722241400019548102005661773589781499532325208589753463547007786690406429016763808161740550405117670093673202804549339027992491867306539931640720492238474815280619166900933805732120816350707634351669869625020969023162859350071874190579161241536897514808261904847946571736601005892476655445840838334790544144817684255327207315586349347605137419779525190365032198020108764738368682531025183377533908861426184800374008082238104076468878471647552945326947661700424461063311238021134588694532200116564076327023074292426051582811070387018345324567635625951430032037432740780879056283663406965030844225855967039271869461158513793386475699748568670079823960604393478850861649260304945061743412365828352144806726676841807083754862211408236579802961200027441324438432402331257403545019352428776430880232850855886089962774458164680857875115807014743763867976955049991643998284357290415378143438847303484261903388841494031366139854257635577105335580206622185577060082551288893332226436281984838613239570676191409638533832374343758830859233722284644287996245605476932428998432652677378373173288063210753211238680604674708428051166488709084770291208161104912555598322366244868556651402684641209694982590565519216188104341226838996283071654868525536914850299539675503954938371853405900096187489473992880432496373165753803673586710175783994818471798498246948060532081996066183434012476096639519778021441199752546704080608499344178256285092726523709898651539462193004607364507926212975917698293892367015170992091531567814439791248475706237804600009918293321306880570046591458387208088016887445835557926258465124763087148566313528934166117490617526671492672176128330845273936469244582892571388877839056300482483799839692029222215486145902373478222682521639957440801727144146179559226175083889020074169926238300282286249284182671243405751424188569994272331606998712986882771820617214453142574944015066139463169197629181506579745526236191224848063890033669074365989226349564114665503062965960199720636202603521917776740668777463549375318899587866282125469797102065747232721372918144666659421872003474508942830911535189271114287108376159222380276605327823351661555149369375778466670145717971901227117812780450240026384758788339396817962950690798817121690686929538248529830023476068454114178139110648560236549754227497231007615131870024053910510913817843721791422528587432098524957878034683703337818421444017138688124249984418618129271198533315382567321870421530631197748535214670955334626336610864667332292409879849256691109516143618601548909740241913509623043612196128165950518666022030715613684732364660868905014263913906515063908199378852318365059897299125404479443425166774299659811849233151555272883274028352688442408752811283289980625912673699546247341543333500147231430612750390307397135252069338173843322950701049061867539433130784798015655130384758155685236218010419650255596181934986315913233036096461905990236112681196023441843363334594927631946101716652913823717182394299216272538461776065694542297877071383198817036964588689811863210976900355735884624464835706291453052757101278872027965364479724025405448132748391794128826423835171949197209797145936887537198729130831738033911016128547415377377715951728084111627597186384924222802373441925469991983672192131287035585307966942713416391033882754318613643490100943197409047331014476299861725424423355612237435715825933382804986243892498222780715951762757847109475119033482241412025182688713728193104253478196128440176479531505057110722974314569915223451643121848657575786528197564843508958384722923534559464521215831657751471298708225909292655638836651120681943836904116252668710044560243704200663709001941185557160472044643696932850060046928140507119069261393993902735534545567470314903886022024639948260501762431969305640666366626090207048887438898907498152865444381862917382901051820869936382661868303915273264581286782806601337500096593364625146091723180312930347877421234679118454791311109897794648216922505629399956793483801699157439700537542134485874586856047286751065423341893839099110586465595113646061055156838541217459801807133163612573079611168343863767667307354583494789788316330129240800836356825939157113130978030516441716682518346573675934198084958947940983292500086389778563494693212473426103062713745077286156922596628573857905533240641849018451328284632709269753830867308409142247659474439973348130810986399417379789657010687026734161967196591599588537834822988270125605842365589539690306474965584147981310997157542043256395776070485100881578291408250777738559790129129407309462785944505859412273194812753225152324801503466519048228961406646890305102510916237770448486230229488966711380555607956620732449373374027836767300203011615227008921843515652121379215748206859356920790214502277133099987729459596952817044582181956080965811702798062669891205061560742325686842271306295009864421853470810407128917646906550836129916694778023822502789667843489199409657361704586786242554006942516693979292624714524945408858422726153755260071904336329196375777502176005195800693847635789586878489536872122898557806826518192703632099480155874455575175312736471421295536494084385586615208012115079075068553344489258693283859653013272046970694571546959353658571788894862333292465202735853188533370948455403336565356988172582528918056635488363743793348411845580168331827676834646291995605513470039147876808640322629616641560667508153710646723108461964247537490553744805318226002710216400980584497526023035640038083472053149941172965736785066421400842696497103241919182121213206939769143923368374709228267738708132236680086924703491586840991153098315412063566123187504305467536983230827966457417620806593177265685841681837966106144963432544111706941700222657817358351259821080769101961052229263879745049019254311900620561906577452416191913187533984049343976823310298465893318373015809592522829206820862230332585280119266496314441316442773003237792274712330696417149945532261035475145631290668854345426869788447742981777493710117614651624183616680254815296335308490849943006763654806102940094693750609845588558043970485914449584445079978497045583550685408745163316464118083123079704389849190506587586425810738422420591191941674182490452700288263983057950057341711487031187142834184499153456702915280104485145176055306971441761368582384102787659324662689978418319620312262421177391477208004883578333569204533935953254564897028558589735505751235129536540502842081022785248776603574246366673148680279486052445782673626230852978265057114624846595914210278122788941448163994973881884622768244851622051817076722169863265701654316919742651230041757329904473537672536845792754365412826553581858046840069367718605020070547247548400805530424951854495267247261347318174742180078574693465447136036975884118029408039616746946288540679172138601225419503819704538417268006398820656328792839582708510919958839448297775647152026132871089526163417707151642899487953564854553553148754978134009964854498635824847690590033116961303766127923464323129706628411307427046202032013368350385425360313636763575212604707425311209233402837482949453104727418969287275572027615272268283376741393425652653283068469997597097750005560889932685025049212884068274139881631540456490350775871680074055685724021758685439053228133770707415830756269628316955687424060527726485853050611356384851965918968649596335568216975437621430778665934730450164822432964891270709898076676625671517269062058815549666382573829274182082278960684488222983394816670984039024283514306813767253460126007269262969468672750794346190439996618979611928750519442356402644303271737341591281496056168353988188569484045342311424613559925272330064881627466723523751234311893442118885085079358163848994487544756331689213869675574302737953785262542329024881047181939037220666894702204258836895840939998453560948869946833852579675161882159410981624918741813364726965123980677561947912557957446471427868624053750576104204267149366084980238274680575982591331006919941904651906531171908926077949119217946407355129633864523035673345588033313197080365457184791550432654899559705862888286866606618021882248602144999973122164138170653480175510438406624412822803616648904257377640956326482825258407669045608439490325290526337532316509087681336614242398309530806549661879381949120033919489494065132398816642080088395554942237096734840072642705701165089075196155370186264797456381187856175457113400473810762763014953309735174180655479112660938034311378532532883533352024934365979129341284854970946826329075830193072665337782559314331110963848053940859283988907796210479847919686876539987477095912788727475874439806779824968278272200926449944559380414608770641941810440758269805688038949654616587983904660587645341810289907194293021774519976104495043196841503455514044820928933378657363052830619990077748726922998608279053171691876578860908941817057993404890218441559791092676862796597583952483926734883634745651687016166240642424241228961118010615682342539392180052483454723779219911228595914191877491793823340010078128326506710281781396029120914720100947878752551263372884222353869490067927664511634758101193875319657242121476038284774774571704578610417385747911301908583877890152334343013005282797038580359815182929600305682612091950943737325454171056383887047528950563961029843641360935641632589408137981511693338619797339821670761004607980096016024823096943043806956620123213650140549586250615282588033022908385812478469315720323233601899469437647726721879376826431828382603564520699468630216048874528424363593558622333506235945002890558581611275341783750455936126130852640828051213873177490200249552738734585956405160830583053770732533971552620444705429573538361113677523169972740292941674204423248113875075631319078272188864053374694213842169928862940479635305150560788126366206497231257579019598873041195626227343728900516561111094111745277965482790471250581999077498063821559376885546498822938985408291325129076478386322494781016753491693489288104203015610283386143827378160946341335383578340765314321417150655877547820252454780657301342277470616744241968952613164274104695474621483756288299771804186785084546965619150908695874251184435837306590951460980451247409411373899927822492983367796011015387096129749705566301637307202750734759922943792393824427421186158236161317886392553095117188421298508307238259729144142251579403883011359083331651858234967221259621812507058113759495525022747274674369887131926670769299199084467161228738858457584622726573330753735572823951616964175198675012681745429323738294143824814377139861906716657572945807804820559511881687188075212971832636442155336787751274766940790117057509819575084563565217389544179875074523854455200133572033332379895074393905312918212255259833790909463630202185353848854825062897715616963860712382771725621313460549401770413581731931763370136332252819127547191443450920711848838366818174263342949611870091503049165339464763717766439120798347494627397822171502090670190302469762151278521956142070806461631373236517853976292092025500288962012970141379640038055734949269073535145961208674796547733692958773628635660143767964038430796864138563447801328261284589184898528048048844180821639423974014362903481665458114454366460032490618763039502356402044530748210241366895196644221339200757479128683805175150634662569391937740283512075666260829890491877287833852178522792045771846965855278790447562192663992008409302075673925363735628390829817577902153202106409617373283598494066652141198183810884515459772895164572131897797907491941013148368544639616904607030107596818933741217575988165127000761262789169510406315857637534787420070222051070891257612361658026806815858499852631465878086616800733264676830206391697203064894405628195406190685242003053463156621891327309069687353181641094514288036605995220248248886711554429104721929134248346438705368508648749099178812670565665387191049721820042371492740164460943459845392536706132210616533085662021188968234005752675486101476993688738209584552211571923479686888160853631615862880150395949418529489227074410828207169303387818084936204018255222271010985653444817207470756019245915599431072949578197878590578940052540122867517142511184356437184053563024181225473266093302710397968091064939272722683035410467632591355279683837705019855234621222858410557119921731717969804339317707750755627056047831779844447637560254637033369247114220815519973691371975163241302748712199863404548248524570118553342675264715978310731245663429805221455494156252724028915333354349341217862037007260315279870771872491234494477147909520734761385425485311552773301030342476835865496093722324007154518129732692081058424090557725645803681462234493189708138897143299831347617799679712453782310703739151473878692119187566700319321281896803322696594459286210607438827416919465162267632540665070881071030394178860564893769816734159025925194611823642945652669372203155504700213598846292758012527715422016629954863130324912311029627923723899766416803497141226527931907636326136814145516376656559839788489381733082668779901962886932296597379951931621187215455287394170243669885593888793316744533363119541518404088283815193421234122820030950313341050704760159987985472529190665222479319715440331794836837373220821885773341623856441380700541913530245943913502554531886454796252260251762928374330465102361057583514550739443339610216229675461415781127197001738611494279501411253280621254775810512972088465263158094806633687670147310733540717710876615935856814098212967730759197382973441445256688770855324570888958320993823432102718224114763732791357568615421252849657903335093152776925505845644010552192644505312073756287744998163646332835816140330175813967359427327690448920361880386754955751806890058532927201493923500525845146706982628548257883267398735220457228239290207144822219885587102896991935873074277815159757620764023951243860202032596596250212578349957710085626386118233813318509014686577064010676278617583772772895892746039403930337271873850536912957126715066896688493880885142943609962012966759079225082275313812849851526902931700263136328942095797577959327635531162066753488651317323872438748063513314512644889967589828812925480076425186586490241111127301357197181381602583178506932244007998656635371544088454866393181708395735780799059730839094881804060935959190907473960904410150516321749681412100765719177483767355751000733616922386537429079457803200042337452807566153042929014495780629634138383551783599764708851349004856973697965238695845994595592090709058956891451141412684505462117945026611750166928260250950770778211950432617383223562437601776799362796099368975191394965033358507155418436456852616674243688920371037495328425927131610537834980740739158633817967658425258036737206469351248652238481341663808061505704829059890696451936440018597120425723007316410009916987524260377362177763430621616744884930810929901009517974541564251204822086714586849255132444266777127863728211331536224301091824391243380214046242223349153559516890816288487989988273630445372432174280215755777967021666317047969728172483392841015642274507271779269399929740308072770395013581545142494049026536105825409373114653104943382484379718606937214444600826798002471229489405761853892203425608302697052876621377373594394224114707074072902725461307358541745691419446487624357682397065703184168467540733466346293673983620004041400714054277632480132742202685393698869787607009590048684650626771363070979821006557285101306601010780633743344773073478653881742681230743766066643312775356466578603715192922768440458273283243808212841218776132042460464900801054731426749260826922155637405486241717031027919996942645620955619816454547662045022411449404749349832206807191352767986747813458203859570413466177937228534940031631599544093684089572533438702986717829770373332806801764639502090023941931499115009105276821119510999063166150311585582835582607179410052528583611369961303442790173811787412061288182062023263849861515656451230047792967563618345768105043341769543067538041113928553792529241347339481050532025708728186307291158911335942014761872664291564036371927602306283840650425441742335464549987055318726887926424102147363698625463747159744354943443899730051742525110877357886390946812096673428152585919924857640488055071329814299359911463239919113959926752576359007446572810191805841807342227734721397723218231771716916400108826112549093361186780575722391018186168549108500885272274374212086524852372456248697662245384819298671129452945515497030585919307198497105414181636968976131126744027009648667545934567059936995464500558921628047976365686133316563907395703272034389175415267500915011198856872708848195531676931681272892143031376818016445477367518353497857924276463354162433601125960252109501612264110346083465648235597934274056868849224458745493776752120324703803035491157544831295275891939893680876327685438769557694881422844311998595700727521393176837831770339130423060958999137314684569010422095161967070506420256733873446115655276175992727151877660010238944760539789516945708802728736225121076224091810066700883474737605156285533943565843756271241244457651663064085939507947550920463932245202535463634444791755661725962187199279186575490857852950012840229035061514937310107009446151011613712423761426722541732055959202782129325725947146417224977321316381845326555279604270541871496236585252458648933254145062642337885651464670604298564781968461593663288954299780722542264790400616019751975007460545150060291806638271497016110987951336633771378434416194053121445291855180136575558667615019373029691932076120009255065081583275508499340768797252369987023567931026804136745718956641431852679054717169962990363015545645090044802789055701968328313630718997699153166679208958768572290600915472919636381673596673959975710326015571920237348580521128117458610065152598883843114511894880552129145775699146577530041384717124577965048175856395072895337539755822087777506072339445587895905719156736) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/input-too-big/input-too-big.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/input-too-big/input-too-big.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/input-too-big/input-too-big.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/input-too-big/input-too-big.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/input-too-big/input-too-big.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/input-too-big/input-too-big.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc new file mode 100644 index 00000000..5432faab --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc @@ -0,0 +1,5 @@ +-- Check that the maximum allowable input (2^65536-1) is accepted. +(program 1.0.0 + [(builtin integerToByteString) (con bool True) (con integer 0) (con integer 2003529930406846464979072351560255750447825475569751419265016973710894059556311453089506130880933348101038234342907263181822949382118812668869506364761547029165041871916351587966347219442930927982084309104855990570159318959639524863372367203002916969592156108764948889254090805911457037675208500206671563702366126359747144807111774815880914135742720967190151836282560618091458852699826141425030123391108273603843767876449043205960379124490905707560314035076162562476031863793126484703743782954975613770981604614413308692118102485959152380195331030292162800160568670105651646750568038741529463842244845292537361442533614373729088303794601274724958414864915930647252015155693922628180691650796381064132275307267143998158508811292628901134237782705567421080070065283963322155077831214288551675554073345107213112427399562982719769150054883905223804357045848197956393157853510018992000024141963706813559840464039472194016069517690156119726982337890017641517190051133466306898140219383481435426387306539552969691388024158161859561100640362119796101859534802787167200122604642492385111393400464351623867567078745259464670903886547743483217897012764455529409092021959585751622973333576159552394885297579954028471943529913543763705986928913757153740001986394332464890052543106629669165243419174691389632476560289415199775477703138064781342309596190960654591300890188887588084733625956065444888501447335706058817090162108499714529568344061979690565469813631162053579369791403236328496233046421066136200220175787851857409162050489711781820400187282939943446186224328009837323764931814789848119452713007440220765680910376203999203492023906626264491909167985461515778839060397720759279378852241294301017458086862263369284725851403039615558564330385450688652213114813638408384778263790459607186876728509763471271988890680478243230394718650525660978150729861141430305816927924971409161059417185352275887504477592218301158780701975535722241400019548102005661773589781499532325208589753463547007786690406429016763808161740550405117670093673202804549339027992491867306539931640720492238474815280619166900933805732120816350707634351669869625020969023162859350071874190579161241536897514808261904847946571736601005892476655445840838334790544144817684255327207315586349347605137419779525190365032198020108764738368682531025183377533908861426184800374008082238104076468878471647552945326947661700424461063311238021134588694532200116564076327023074292426051582811070387018345324567635625951430032037432740780879056283663406965030844225855967039271869461158513793386475699748568670079823960604393478850861649260304945061743412365828352144806726676841807083754862211408236579802961200027441324438432402331257403545019352428776430880232850855886089962774458164680857875115807014743763867976955049991643998284357290415378143438847303484261903388841494031366139854257635577105335580206622185577060082551288893332226436281984838613239570676191409638533832374343758830859233722284644287996245605476932428998432652677378373173288063210753211238680604674708428051166488709084770291208161104912555598322366244868556651402684641209694982590565519216188104341226838996283071654868525536914850299539675503954938371853405900096187489473992880432496373165753803673586710175783994818471798498246948060532081996066183434012476096639519778021441199752546704080608499344178256285092726523709898651539462193004607364507926212975917698293892367015170992091531567814439791248475706237804600009918293321306880570046591458387208088016887445835557926258465124763087148566313528934166117490617526671492672176128330845273936469244582892571388877839056300482483799839692029222215486145902373478222682521639957440801727144146179559226175083889020074169926238300282286249284182671243405751424188569994272331606998712986882771820617214453142574944015066139463169197629181506579745526236191224848063890033669074365989226349564114665503062965960199720636202603521917776740668777463549375318899587866282125469797102065747232721372918144666659421872003474508942830911535189271114287108376159222380276605327823351661555149369375778466670145717971901227117812780450240026384758788339396817962950690798817121690686929538248529830023476068454114178139110648560236549754227497231007615131870024053910510913817843721791422528587432098524957878034683703337818421444017138688124249984418618129271198533315382567321870421530631197748535214670955334626336610864667332292409879849256691109516143618601548909740241913509623043612196128165950518666022030715613684732364660868905014263913906515063908199378852318365059897299125404479443425166774299659811849233151555272883274028352688442408752811283289980625912673699546247341543333500147231430612750390307397135252069338173843322950701049061867539433130784798015655130384758155685236218010419650255596181934986315913233036096461905990236112681196023441843363334594927631946101716652913823717182394299216272538461776065694542297877071383198817036964588689811863210976900355735884624464835706291453052757101278872027965364479724025405448132748391794128826423835171949197209797145936887537198729130831738033911016128547415377377715951728084111627597186384924222802373441925469991983672192131287035585307966942713416391033882754318613643490100943197409047331014476299861725424423355612237435715825933382804986243892498222780715951762757847109475119033482241412025182688713728193104253478196128440176479531505057110722974314569915223451643121848657575786528197564843508958384722923534559464521215831657751471298708225909292655638836651120681943836904116252668710044560243704200663709001941185557160472044643696932850060046928140507119069261393993902735534545567470314903886022024639948260501762431969305640666366626090207048887438898907498152865444381862917382901051820869936382661868303915273264581286782806601337500096593364625146091723180312930347877421234679118454791311109897794648216922505629399956793483801699157439700537542134485874586856047286751065423341893839099110586465595113646061055156838541217459801807133163612573079611168343863767667307354583494789788316330129240800836356825939157113130978030516441716682518346573675934198084958947940983292500086389778563494693212473426103062713745077286156922596628573857905533240641849018451328284632709269753830867308409142247659474439973348130810986399417379789657010687026734161967196591599588537834822988270125605842365589539690306474965584147981310997157542043256395776070485100881578291408250777738559790129129407309462785944505859412273194812753225152324801503466519048228961406646890305102510916237770448486230229488966711380555607956620732449373374027836767300203011615227008921843515652121379215748206859356920790214502277133099987729459596952817044582181956080965811702798062669891205061560742325686842271306295009864421853470810407128917646906550836129916694778023822502789667843489199409657361704586786242554006942516693979292624714524945408858422726153755260071904336329196375777502176005195800693847635789586878489536872122898557806826518192703632099480155874455575175312736471421295536494084385586615208012115079075068553344489258693283859653013272046970694571546959353658571788894862333292465202735853188533370948455403336565356988172582528918056635488363743793348411845580168331827676834646291995605513470039147876808640322629616641560667508153710646723108461964247537490553744805318226002710216400980584497526023035640038083472053149941172965736785066421400842696497103241919182121213206939769143923368374709228267738708132236680086924703491586840991153098315412063566123187504305467536983230827966457417620806593177265685841681837966106144963432544111706941700222657817358351259821080769101961052229263879745049019254311900620561906577452416191913187533984049343976823310298465893318373015809592522829206820862230332585280119266496314441316442773003237792274712330696417149945532261035475145631290668854345426869788447742981777493710117614651624183616680254815296335308490849943006763654806102940094693750609845588558043970485914449584445079978497045583550685408745163316464118083123079704389849190506587586425810738422420591191941674182490452700288263983057950057341711487031187142834184499153456702915280104485145176055306971441761368582384102787659324662689978418319620312262421177391477208004883578333569204533935953254564897028558589735505751235129536540502842081022785248776603574246366673148680279486052445782673626230852978265057114624846595914210278122788941448163994973881884622768244851622051817076722169863265701654316919742651230041757329904473537672536845792754365412826553581858046840069367718605020070547247548400805530424951854495267247261347318174742180078574693465447136036975884118029408039616746946288540679172138601225419503819704538417268006398820656328792839582708510919958839448297775647152026132871089526163417707151642899487953564854553553148754978134009964854498635824847690590033116961303766127923464323129706628411307427046202032013368350385425360313636763575212604707425311209233402837482949453104727418969287275572027615272268283376741393425652653283068469997597097750005560889932685025049212884068274139881631540456490350775871680074055685724021758685439053228133770707415830756269628316955687424060527726485853050611356384851965918968649596335568216975437621430778665934730450164822432964891270709898076676625671517269062058815549666382573829274182082278960684488222983394816670984039024283514306813767253460126007269262969468672750794346190439996618979611928750519442356402644303271737341591281496056168353988188569484045342311424613559925272330064881627466723523751234311893442118885085079358163848994487544756331689213869675574302737953785262542329024881047181939037220666894702204258836895840939998453560948869946833852579675161882159410981624918741813364726965123980677561947912557957446471427868624053750576104204267149366084980238274680575982591331006919941904651906531171908926077949119217946407355129633864523035673345588033313197080365457184791550432654899559705862888286866606618021882248602144999973122164138170653480175510438406624412822803616648904257377640956326482825258407669045608439490325290526337532316509087681336614242398309530806549661879381949120033919489494065132398816642080088395554942237096734840072642705701165089075196155370186264797456381187856175457113400473810762763014953309735174180655479112660938034311378532532883533352024934365979129341284854970946826329075830193072665337782559314331110963848053940859283988907796210479847919686876539987477095912788727475874439806779824968278272200926449944559380414608770641941810440758269805688038949654616587983904660587645341810289907194293021774519976104495043196841503455514044820928933378657363052830619990077748726922998608279053171691876578860908941817057993404890218441559791092676862796597583952483926734883634745651687016166240642424241228961118010615682342539392180052483454723779219911228595914191877491793823340010078128326506710281781396029120914720100947878752551263372884222353869490067927664511634758101193875319657242121476038284774774571704578610417385747911301908583877890152334343013005282797038580359815182929600305682612091950943737325454171056383887047528950563961029843641360935641632589408137981511693338619797339821670761004607980096016024823096943043806956620123213650140549586250615282588033022908385812478469315720323233601899469437647726721879376826431828382603564520699468630216048874528424363593558622333506235945002890558581611275341783750455936126130852640828051213873177490200249552738734585956405160830583053770732533971552620444705429573538361113677523169972740292941674204423248113875075631319078272188864053374694213842169928862940479635305150560788126366206497231257579019598873041195626227343728900516561111094111745277965482790471250581999077498063821559376885546498822938985408291325129076478386322494781016753491693489288104203015610283386143827378160946341335383578340765314321417150655877547820252454780657301342277470616744241968952613164274104695474621483756288299771804186785084546965619150908695874251184435837306590951460980451247409411373899927822492983367796011015387096129749705566301637307202750734759922943792393824427421186158236161317886392553095117188421298508307238259729144142251579403883011359083331651858234967221259621812507058113759495525022747274674369887131926670769299199084467161228738858457584622726573330753735572823951616964175198675012681745429323738294143824814377139861906716657572945807804820559511881687188075212971832636442155336787751274766940790117057509819575084563565217389544179875074523854455200133572033332379895074393905312918212255259833790909463630202185353848854825062897715616963860712382771725621313460549401770413581731931763370136332252819127547191443450920711848838366818174263342949611870091503049165339464763717766439120798347494627397822171502090670190302469762151278521956142070806461631373236517853976292092025500288962012970141379640038055734949269073535145961208674796547733692958773628635660143767964038430796864138563447801328261284589184898528048048844180821639423974014362903481665458114454366460032490618763039502356402044530748210241366895196644221339200757479128683805175150634662569391937740283512075666260829890491877287833852178522792045771846965855278790447562192663992008409302075673925363735628390829817577902153202106409617373283598494066652141198183810884515459772895164572131897797907491941013148368544639616904607030107596818933741217575988165127000761262789169510406315857637534787420070222051070891257612361658026806815858499852631465878086616800733264676830206391697203064894405628195406190685242003053463156621891327309069687353181641094514288036605995220248248886711554429104721929134248346438705368508648749099178812670565665387191049721820042371492740164460943459845392536706132210616533085662021188968234005752675486101476993688738209584552211571923479686888160853631615862880150395949418529489227074410828207169303387818084936204018255222271010985653444817207470756019245915599431072949578197878590578940052540122867517142511184356437184053563024181225473266093302710397968091064939272722683035410467632591355279683837705019855234621222858410557119921731717969804339317707750755627056047831779844447637560254637033369247114220815519973691371975163241302748712199863404548248524570118553342675264715978310731245663429805221455494156252724028915333354349341217862037007260315279870771872491234494477147909520734761385425485311552773301030342476835865496093722324007154518129732692081058424090557725645803681462234493189708138897143299831347617799679712453782310703739151473878692119187566700319321281896803322696594459286210607438827416919465162267632540665070881071030394178860564893769816734159025925194611823642945652669372203155504700213598846292758012527715422016629954863130324912311029627923723899766416803497141226527931907636326136814145516376656559839788489381733082668779901962886932296597379951931621187215455287394170243669885593888793316744533363119541518404088283815193421234122820030950313341050704760159987985472529190665222479319715440331794836837373220821885773341623856441380700541913530245943913502554531886454796252260251762928374330465102361057583514550739443339610216229675461415781127197001738611494279501411253280621254775810512972088465263158094806633687670147310733540717710876615935856814098212967730759197382973441445256688770855324570888958320993823432102718224114763732791357568615421252849657903335093152776925505845644010552192644505312073756287744998163646332835816140330175813967359427327690448920361880386754955751806890058532927201493923500525845146706982628548257883267398735220457228239290207144822219885587102896991935873074277815159757620764023951243860202032596596250212578349957710085626386118233813318509014686577064010676278617583772772895892746039403930337271873850536912957126715066896688493880885142943609962012966759079225082275313812849851526902931700263136328942095797577959327635531162066753488651317323872438748063513314512644889967589828812925480076425186586490241111127301357197181381602583178506932244007998656635371544088454866393181708395735780799059730839094881804060935959190907473960904410150516321749681412100765719177483767355751000733616922386537429079457803200042337452807566153042929014495780629634138383551783599764708851349004856973697965238695845994595592090709058956891451141412684505462117945026611750166928260250950770778211950432617383223562437601776799362796099368975191394965033358507155418436456852616674243688920371037495328425927131610537834980740739158633817967658425258036737206469351248652238481341663808061505704829059890696451936440018597120425723007316410009916987524260377362177763430621616744884930810929901009517974541564251204822086714586849255132444266777127863728211331536224301091824391243380214046242223349153559516890816288487989988273630445372432174280215755777967021666317047969728172483392841015642274507271779269399929740308072770395013581545142494049026536105825409373114653104943382484379718606937214444600826798002471229489405761853892203425608302697052876621377373594394224114707074072902725461307358541745691419446487624357682397065703184168467540733466346293673983620004041400714054277632480132742202685393698869787607009590048684650626771363070979821006557285101306601010780633743344773073478653881742681230743766066643312775356466578603715192922768440458273283243808212841218776132042460464900801054731426749260826922155637405486241717031027919996942645620955619816454547662045022411449404749349832206807191352767986747813458203859570413466177937228534940031631599544093684089572533438702986717829770373332806801764639502090023941931499115009105276821119510999063166150311585582835582607179410052528583611369961303442790173811787412061288182062023263849861515656451230047792967563618345768105043341769543067538041113928553792529241347339481050532025708728186307291158911335942014761872664291564036371927602306283840650425441742335464549987055318726887926424102147363698625463747159744354943443899730051742525110877357886390946812096673428152585919924857640488055071329814299359911463239919113959926752576359007446572810191805841807342227734721397723218231771716916400108826112549093361186780575722391018186168549108500885272274374212086524852372456248697662245384819298671129452945515497030585919307198497105414181636968976131126744027009648667545934567059936995464500558921628047976365686133316563907395703272034389175415267500915011198856872708848195531676931681272892143031376818016445477367518353497857924276463354162433601125960252109501612264110346083465648235597934274056868849224458745493776752120324703803035491157544831295275891939893680876327685438769557694881422844311998595700727521393176837831770339130423060958999137314684569010422095161967070506420256733873446115655276175992727151877660010238944760539789516945708802728736225121076224091810066700883474737605156285533943565843756271241244457651663064085939507947550920463932245202535463634444791755661725962187199279186575490857852950012840229035061514937310107009446151011613712423761426722541732055959202782129325725947146417224977321316381845326555279604270541871496236585252458648933254145062642337885651464670604298564781968461593663288954299780722542264790400616019751975007460545150060291806638271497016110987951336633771378434416194053121445291855180136575558667615019373029691932076120009255065081583275508499340768797252369987023567931026804136745718956641431852679054717169962990363015545645090044802789055701968328313630718997699153166679208958768572290600915472919636381673596673959975710326015571920237348580521128117458610065152598883843114511894880552129145775699146577530041384717124577965048175856395072895337539755822087777506072339445587895905719156735) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected new file mode 100644 index 00000000..ef373193 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 96871400 +| mem: 801}) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc.expected new file mode 100644 index 00000000..3f80103e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bytestring + #ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ) +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/negative-input/negative-input.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/negative-input/negative-input.uplc new file mode 100644 index 00000000..a199c17a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/negative-input/negative-input.uplc @@ -0,0 +1,4 @@ +-- Negative inputs cause an error. +(program 1.0.0 + [(builtin integerToByteString) (con bool True) (con integer 0) (con integer -5)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/negative-input/negative-input.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/negative-input/negative-input.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/negative-input/negative-input.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/negative-input/negative-input.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/negative-input/negative-input.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/negative-input/negative-input.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc new file mode 100644 index 00000000..bb99de06 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc @@ -0,0 +1,4 @@ +-- Zero should encode to the empty bytestring. +(program 1.0.0 + [(builtin integerToByteString) (con bool True) (con integer 0) (con integer 0)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc.budget.expected new file mode 100644 index 00000000..0bc43be7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1434707 +| mem: 801}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc.expected new file mode 100644 index 00000000..cac0a333 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bytestring #)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc new file mode 100644 index 00000000..01152010 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc @@ -0,0 +1,4 @@ +-- Check that a particular integer encodes to the expected bytestring using exactly the right width. +(program 1.0.0 + [(builtin integerToByteString) (con bool False) (con integer 6) (con integer 20016001699311)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected new file mode 100644 index 00000000..0bc43be7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1434707 +| mem: 801}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.expected new file mode 100644 index 00000000..8383aeb2 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bytestring #efcdab563412)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc new file mode 100644 index 00000000..f0919757 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc @@ -0,0 +1,6 @@ +-- Check that a particular integer encodes to the expected bytestring with some +-- extra padding on the right when the width is greater than the minimal +-- required width. +(program 1.0.0 + [(builtin integerToByteString) (con bool False) (con integer 12) (con integer 20016001699311)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected new file mode 100644 index 00000000..ce3a2a71 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1434707 +| mem: 801}) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.expected new file mode 100644 index 00000000..bb5b0758 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bytestring #efcdab563412000000000000)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc new file mode 100644 index 00000000..230bdbe1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc @@ -0,0 +1,5 @@ +-- Check that the maximum allowable input (2^65536-1) fits into the maximum width. +(program 1.0.0 + [(builtin integerToByteString) (con bool False) (con integer 8192) (con integer 2003529930406846464979072351560255750447825475569751419265016973710894059556311453089506130880933348101038234342907263181822949382118812668869506364761547029165041871916351587966347219442930927982084309104855990570159318959639524863372367203002916969592156108764948889254090805911457037675208500206671563702366126359747144807111774815880914135742720967190151836282560618091458852699826141425030123391108273603843767876449043205960379124490905707560314035076162562476031863793126484703743782954975613770981604614413308692118102485959152380195331030292162800160568670105651646750568038741529463842244845292537361442533614373729088303794601274724958414864915930647252015155693922628180691650796381064132275307267143998158508811292628901134237782705567421080070065283963322155077831214288551675554073345107213112427399562982719769150054883905223804357045848197956393157853510018992000024141963706813559840464039472194016069517690156119726982337890017641517190051133466306898140219383481435426387306539552969691388024158161859561100640362119796101859534802787167200122604642492385111393400464351623867567078745259464670903886547743483217897012764455529409092021959585751622973333576159552394885297579954028471943529913543763705986928913757153740001986394332464890052543106629669165243419174691389632476560289415199775477703138064781342309596190960654591300890188887588084733625956065444888501447335706058817090162108499714529568344061979690565469813631162053579369791403236328496233046421066136200220175787851857409162050489711781820400187282939943446186224328009837323764931814789848119452713007440220765680910376203999203492023906626264491909167985461515778839060397720759279378852241294301017458086862263369284725851403039615558564330385450688652213114813638408384778263790459607186876728509763471271988890680478243230394718650525660978150729861141430305816927924971409161059417185352275887504477592218301158780701975535722241400019548102005661773589781499532325208589753463547007786690406429016763808161740550405117670093673202804549339027992491867306539931640720492238474815280619166900933805732120816350707634351669869625020969023162859350071874190579161241536897514808261904847946571736601005892476655445840838334790544144817684255327207315586349347605137419779525190365032198020108764738368682531025183377533908861426184800374008082238104076468878471647552945326947661700424461063311238021134588694532200116564076327023074292426051582811070387018345324567635625951430032037432740780879056283663406965030844225855967039271869461158513793386475699748568670079823960604393478850861649260304945061743412365828352144806726676841807083754862211408236579802961200027441324438432402331257403545019352428776430880232850855886089962774458164680857875115807014743763867976955049991643998284357290415378143438847303484261903388841494031366139854257635577105335580206622185577060082551288893332226436281984838613239570676191409638533832374343758830859233722284644287996245605476932428998432652677378373173288063210753211238680604674708428051166488709084770291208161104912555598322366244868556651402684641209694982590565519216188104341226838996283071654868525536914850299539675503954938371853405900096187489473992880432496373165753803673586710175783994818471798498246948060532081996066183434012476096639519778021441199752546704080608499344178256285092726523709898651539462193004607364507926212975917698293892367015170992091531567814439791248475706237804600009918293321306880570046591458387208088016887445835557926258465124763087148566313528934166117490617526671492672176128330845273936469244582892571388877839056300482483799839692029222215486145902373478222682521639957440801727144146179559226175083889020074169926238300282286249284182671243405751424188569994272331606998712986882771820617214453142574944015066139463169197629181506579745526236191224848063890033669074365989226349564114665503062965960199720636202603521917776740668777463549375318899587866282125469797102065747232721372918144666659421872003474508942830911535189271114287108376159222380276605327823351661555149369375778466670145717971901227117812780450240026384758788339396817962950690798817121690686929538248529830023476068454114178139110648560236549754227497231007615131870024053910510913817843721791422528587432098524957878034683703337818421444017138688124249984418618129271198533315382567321870421530631197748535214670955334626336610864667332292409879849256691109516143618601548909740241913509623043612196128165950518666022030715613684732364660868905014263913906515063908199378852318365059897299125404479443425166774299659811849233151555272883274028352688442408752811283289980625912673699546247341543333500147231430612750390307397135252069338173843322950701049061867539433130784798015655130384758155685236218010419650255596181934986315913233036096461905990236112681196023441843363334594927631946101716652913823717182394299216272538461776065694542297877071383198817036964588689811863210976900355735884624464835706291453052757101278872027965364479724025405448132748391794128826423835171949197209797145936887537198729130831738033911016128547415377377715951728084111627597186384924222802373441925469991983672192131287035585307966942713416391033882754318613643490100943197409047331014476299861725424423355612237435715825933382804986243892498222780715951762757847109475119033482241412025182688713728193104253478196128440176479531505057110722974314569915223451643121848657575786528197564843508958384722923534559464521215831657751471298708225909292655638836651120681943836904116252668710044560243704200663709001941185557160472044643696932850060046928140507119069261393993902735534545567470314903886022024639948260501762431969305640666366626090207048887438898907498152865444381862917382901051820869936382661868303915273264581286782806601337500096593364625146091723180312930347877421234679118454791311109897794648216922505629399956793483801699157439700537542134485874586856047286751065423341893839099110586465595113646061055156838541217459801807133163612573079611168343863767667307354583494789788316330129240800836356825939157113130978030516441716682518346573675934198084958947940983292500086389778563494693212473426103062713745077286156922596628573857905533240641849018451328284632709269753830867308409142247659474439973348130810986399417379789657010687026734161967196591599588537834822988270125605842365589539690306474965584147981310997157542043256395776070485100881578291408250777738559790129129407309462785944505859412273194812753225152324801503466519048228961406646890305102510916237770448486230229488966711380555607956620732449373374027836767300203011615227008921843515652121379215748206859356920790214502277133099987729459596952817044582181956080965811702798062669891205061560742325686842271306295009864421853470810407128917646906550836129916694778023822502789667843489199409657361704586786242554006942516693979292624714524945408858422726153755260071904336329196375777502176005195800693847635789586878489536872122898557806826518192703632099480155874455575175312736471421295536494084385586615208012115079075068553344489258693283859653013272046970694571546959353658571788894862333292465202735853188533370948455403336565356988172582528918056635488363743793348411845580168331827676834646291995605513470039147876808640322629616641560667508153710646723108461964247537490553744805318226002710216400980584497526023035640038083472053149941172965736785066421400842696497103241919182121213206939769143923368374709228267738708132236680086924703491586840991153098315412063566123187504305467536983230827966457417620806593177265685841681837966106144963432544111706941700222657817358351259821080769101961052229263879745049019254311900620561906577452416191913187533984049343976823310298465893318373015809592522829206820862230332585280119266496314441316442773003237792274712330696417149945532261035475145631290668854345426869788447742981777493710117614651624183616680254815296335308490849943006763654806102940094693750609845588558043970485914449584445079978497045583550685408745163316464118083123079704389849190506587586425810738422420591191941674182490452700288263983057950057341711487031187142834184499153456702915280104485145176055306971441761368582384102787659324662689978418319620312262421177391477208004883578333569204533935953254564897028558589735505751235129536540502842081022785248776603574246366673148680279486052445782673626230852978265057114624846595914210278122788941448163994973881884622768244851622051817076722169863265701654316919742651230041757329904473537672536845792754365412826553581858046840069367718605020070547247548400805530424951854495267247261347318174742180078574693465447136036975884118029408039616746946288540679172138601225419503819704538417268006398820656328792839582708510919958839448297775647152026132871089526163417707151642899487953564854553553148754978134009964854498635824847690590033116961303766127923464323129706628411307427046202032013368350385425360313636763575212604707425311209233402837482949453104727418969287275572027615272268283376741393425652653283068469997597097750005560889932685025049212884068274139881631540456490350775871680074055685724021758685439053228133770707415830756269628316955687424060527726485853050611356384851965918968649596335568216975437621430778665934730450164822432964891270709898076676625671517269062058815549666382573829274182082278960684488222983394816670984039024283514306813767253460126007269262969468672750794346190439996618979611928750519442356402644303271737341591281496056168353988188569484045342311424613559925272330064881627466723523751234311893442118885085079358163848994487544756331689213869675574302737953785262542329024881047181939037220666894702204258836895840939998453560948869946833852579675161882159410981624918741813364726965123980677561947912557957446471427868624053750576104204267149366084980238274680575982591331006919941904651906531171908926077949119217946407355129633864523035673345588033313197080365457184791550432654899559705862888286866606618021882248602144999973122164138170653480175510438406624412822803616648904257377640956326482825258407669045608439490325290526337532316509087681336614242398309530806549661879381949120033919489494065132398816642080088395554942237096734840072642705701165089075196155370186264797456381187856175457113400473810762763014953309735174180655479112660938034311378532532883533352024934365979129341284854970946826329075830193072665337782559314331110963848053940859283988907796210479847919686876539987477095912788727475874439806779824968278272200926449944559380414608770641941810440758269805688038949654616587983904660587645341810289907194293021774519976104495043196841503455514044820928933378657363052830619990077748726922998608279053171691876578860908941817057993404890218441559791092676862796597583952483926734883634745651687016166240642424241228961118010615682342539392180052483454723779219911228595914191877491793823340010078128326506710281781396029120914720100947878752551263372884222353869490067927664511634758101193875319657242121476038284774774571704578610417385747911301908583877890152334343013005282797038580359815182929600305682612091950943737325454171056383887047528950563961029843641360935641632589408137981511693338619797339821670761004607980096016024823096943043806956620123213650140549586250615282588033022908385812478469315720323233601899469437647726721879376826431828382603564520699468630216048874528424363593558622333506235945002890558581611275341783750455936126130852640828051213873177490200249552738734585956405160830583053770732533971552620444705429573538361113677523169972740292941674204423248113875075631319078272188864053374694213842169928862940479635305150560788126366206497231257579019598873041195626227343728900516561111094111745277965482790471250581999077498063821559376885546498822938985408291325129076478386322494781016753491693489288104203015610283386143827378160946341335383578340765314321417150655877547820252454780657301342277470616744241968952613164274104695474621483756288299771804186785084546965619150908695874251184435837306590951460980451247409411373899927822492983367796011015387096129749705566301637307202750734759922943792393824427421186158236161317886392553095117188421298508307238259729144142251579403883011359083331651858234967221259621812507058113759495525022747274674369887131926670769299199084467161228738858457584622726573330753735572823951616964175198675012681745429323738294143824814377139861906716657572945807804820559511881687188075212971832636442155336787751274766940790117057509819575084563565217389544179875074523854455200133572033332379895074393905312918212255259833790909463630202185353848854825062897715616963860712382771725621313460549401770413581731931763370136332252819127547191443450920711848838366818174263342949611870091503049165339464763717766439120798347494627397822171502090670190302469762151278521956142070806461631373236517853976292092025500288962012970141379640038055734949269073535145961208674796547733692958773628635660143767964038430796864138563447801328261284589184898528048048844180821639423974014362903481665458114454366460032490618763039502356402044530748210241366895196644221339200757479128683805175150634662569391937740283512075666260829890491877287833852178522792045771846965855278790447562192663992008409302075673925363735628390829817577902153202106409617373283598494066652141198183810884515459772895164572131897797907491941013148368544639616904607030107596818933741217575988165127000761262789169510406315857637534787420070222051070891257612361658026806815858499852631465878086616800733264676830206391697203064894405628195406190685242003053463156621891327309069687353181641094514288036605995220248248886711554429104721929134248346438705368508648749099178812670565665387191049721820042371492740164460943459845392536706132210616533085662021188968234005752675486101476993688738209584552211571923479686888160853631615862880150395949418529489227074410828207169303387818084936204018255222271010985653444817207470756019245915599431072949578197878590578940052540122867517142511184356437184053563024181225473266093302710397968091064939272722683035410467632591355279683837705019855234621222858410557119921731717969804339317707750755627056047831779844447637560254637033369247114220815519973691371975163241302748712199863404548248524570118553342675264715978310731245663429805221455494156252724028915333354349341217862037007260315279870771872491234494477147909520734761385425485311552773301030342476835865496093722324007154518129732692081058424090557725645803681462234493189708138897143299831347617799679712453782310703739151473878692119187566700319321281896803322696594459286210607438827416919465162267632540665070881071030394178860564893769816734159025925194611823642945652669372203155504700213598846292758012527715422016629954863130324912311029627923723899766416803497141226527931907636326136814145516376656559839788489381733082668779901962886932296597379951931621187215455287394170243669885593888793316744533363119541518404088283815193421234122820030950313341050704760159987985472529190665222479319715440331794836837373220821885773341623856441380700541913530245943913502554531886454796252260251762928374330465102361057583514550739443339610216229675461415781127197001738611494279501411253280621254775810512972088465263158094806633687670147310733540717710876615935856814098212967730759197382973441445256688770855324570888958320993823432102718224114763732791357568615421252849657903335093152776925505845644010552192644505312073756287744998163646332835816140330175813967359427327690448920361880386754955751806890058532927201493923500525845146706982628548257883267398735220457228239290207144822219885587102896991935873074277815159757620764023951243860202032596596250212578349957710085626386118233813318509014686577064010676278617583772772895892746039403930337271873850536912957126715066896688493880885142943609962012966759079225082275313812849851526902931700263136328942095797577959327635531162066753488651317323872438748063513314512644889967589828812925480076425186586490241111127301357197181381602583178506932244007998656635371544088454866393181708395735780799059730839094881804060935959190907473960904410150516321749681412100765719177483767355751000733616922386537429079457803200042337452807566153042929014495780629634138383551783599764708851349004856973697965238695845994595592090709058956891451141412684505462117945026611750166928260250950770778211950432617383223562437601776799362796099368975191394965033358507155418436456852616674243688920371037495328425927131610537834980740739158633817967658425258036737206469351248652238481341663808061505704829059890696451936440018597120425723007316410009916987524260377362177763430621616744884930810929901009517974541564251204822086714586849255132444266777127863728211331536224301091824391243380214046242223349153559516890816288487989988273630445372432174280215755777967021666317047969728172483392841015642274507271779269399929740308072770395013581545142494049026536105825409373114653104943382484379718606937214444600826798002471229489405761853892203425608302697052876621377373594394224114707074072902725461307358541745691419446487624357682397065703184168467540733466346293673983620004041400714054277632480132742202685393698869787607009590048684650626771363070979821006557285101306601010780633743344773073478653881742681230743766066643312775356466578603715192922768440458273283243808212841218776132042460464900801054731426749260826922155637405486241717031027919996942645620955619816454547662045022411449404749349832206807191352767986747813458203859570413466177937228534940031631599544093684089572533438702986717829770373332806801764639502090023941931499115009105276821119510999063166150311585582835582607179410052528583611369961303442790173811787412061288182062023263849861515656451230047792967563618345768105043341769543067538041113928553792529241347339481050532025708728186307291158911335942014761872664291564036371927602306283840650425441742335464549987055318726887926424102147363698625463747159744354943443899730051742525110877357886390946812096673428152585919924857640488055071329814299359911463239919113959926752576359007446572810191805841807342227734721397723218231771716916400108826112549093361186780575722391018186168549108500885272274374212086524852372456248697662245384819298671129452945515497030585919307198497105414181636968976131126744027009648667545934567059936995464500558921628047976365686133316563907395703272034389175415267500915011198856872708848195531676931681272892143031376818016445477367518353497857924276463354162433601125960252109501612264110346083465648235597934274056868849224458745493776752120324703803035491157544831295275891939893680876327685438769557694881422844311998595700727521393176837831770339130423060958999137314684569010422095161967070506420256733873446115655276175992727151877660010238944760539789516945708802728736225121076224091810066700883474737605156285533943565843756271241244457651663064085939507947550920463932245202535463634444791755661725962187199279186575490857852950012840229035061514937310107009446151011613712423761426722541732055959202782129325725947146417224977321316381845326555279604270541871496236585252458648933254145062642337885651464670604298564781968461593663288954299780722542264790400616019751975007460545150060291806638271497016110987951336633771378434416194053121445291855180136575558667615019373029691932076120009255065081583275508499340768797252369987023567931026804136745718956641431852679054717169962990363015545645090044802789055701968328313630718997699153166679208958768572290600915472919636381673596673959975710326015571920237348580521128117458610065152598883843114511894880552129145775699146577530041384717124577965048175856395072895337539755822087777506072339445587895905719156735) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected new file mode 100644 index 00000000..ef373193 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 96871400 +| mem: 801}) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.expected new file mode 100644 index 00000000..d55150f0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bytestring + #ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc new file mode 100644 index 00000000..9dd4b371 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc @@ -0,0 +1,5 @@ +-- Check that the maximum allowable input (2^65536-1) isn't accepted if the width is too small. +(program 1.0.0 + [(builtin integerToByteString) (con bool False) (con integer 8191) (con integer 2003529930406846464979072351560255750447825475569751419265016973710894059556311453089506130880933348101038234342907263181822949382118812668869506364761547029165041871916351587966347219442930927982084309104855990570159318959639524863372367203002916969592156108764948889254090805911457037675208500206671563702366126359747144807111774815880914135742720967190151836282560618091458852699826141425030123391108273603843767876449043205960379124490905707560314035076162562476031863793126484703743782954975613770981604614413308692118102485959152380195331030292162800160568670105651646750568038741529463842244845292537361442533614373729088303794601274724958414864915930647252015155693922628180691650796381064132275307267143998158508811292628901134237782705567421080070065283963322155077831214288551675554073345107213112427399562982719769150054883905223804357045848197956393157853510018992000024141963706813559840464039472194016069517690156119726982337890017641517190051133466306898140219383481435426387306539552969691388024158161859561100640362119796101859534802787167200122604642492385111393400464351623867567078745259464670903886547743483217897012764455529409092021959585751622973333576159552394885297579954028471943529913543763705986928913757153740001986394332464890052543106629669165243419174691389632476560289415199775477703138064781342309596190960654591300890188887588084733625956065444888501447335706058817090162108499714529568344061979690565469813631162053579369791403236328496233046421066136200220175787851857409162050489711781820400187282939943446186224328009837323764931814789848119452713007440220765680910376203999203492023906626264491909167985461515778839060397720759279378852241294301017458086862263369284725851403039615558564330385450688652213114813638408384778263790459607186876728509763471271988890680478243230394718650525660978150729861141430305816927924971409161059417185352275887504477592218301158780701975535722241400019548102005661773589781499532325208589753463547007786690406429016763808161740550405117670093673202804549339027992491867306539931640720492238474815280619166900933805732120816350707634351669869625020969023162859350071874190579161241536897514808261904847946571736601005892476655445840838334790544144817684255327207315586349347605137419779525190365032198020108764738368682531025183377533908861426184800374008082238104076468878471647552945326947661700424461063311238021134588694532200116564076327023074292426051582811070387018345324567635625951430032037432740780879056283663406965030844225855967039271869461158513793386475699748568670079823960604393478850861649260304945061743412365828352144806726676841807083754862211408236579802961200027441324438432402331257403545019352428776430880232850855886089962774458164680857875115807014743763867976955049991643998284357290415378143438847303484261903388841494031366139854257635577105335580206622185577060082551288893332226436281984838613239570676191409638533832374343758830859233722284644287996245605476932428998432652677378373173288063210753211238680604674708428051166488709084770291208161104912555598322366244868556651402684641209694982590565519216188104341226838996283071654868525536914850299539675503954938371853405900096187489473992880432496373165753803673586710175783994818471798498246948060532081996066183434012476096639519778021441199752546704080608499344178256285092726523709898651539462193004607364507926212975917698293892367015170992091531567814439791248475706237804600009918293321306880570046591458387208088016887445835557926258465124763087148566313528934166117490617526671492672176128330845273936469244582892571388877839056300482483799839692029222215486145902373478222682521639957440801727144146179559226175083889020074169926238300282286249284182671243405751424188569994272331606998712986882771820617214453142574944015066139463169197629181506579745526236191224848063890033669074365989226349564114665503062965960199720636202603521917776740668777463549375318899587866282125469797102065747232721372918144666659421872003474508942830911535189271114287108376159222380276605327823351661555149369375778466670145717971901227117812780450240026384758788339396817962950690798817121690686929538248529830023476068454114178139110648560236549754227497231007615131870024053910510913817843721791422528587432098524957878034683703337818421444017138688124249984418618129271198533315382567321870421530631197748535214670955334626336610864667332292409879849256691109516143618601548909740241913509623043612196128165950518666022030715613684732364660868905014263913906515063908199378852318365059897299125404479443425166774299659811849233151555272883274028352688442408752811283289980625912673699546247341543333500147231430612750390307397135252069338173843322950701049061867539433130784798015655130384758155685236218010419650255596181934986315913233036096461905990236112681196023441843363334594927631946101716652913823717182394299216272538461776065694542297877071383198817036964588689811863210976900355735884624464835706291453052757101278872027965364479724025405448132748391794128826423835171949197209797145936887537198729130831738033911016128547415377377715951728084111627597186384924222802373441925469991983672192131287035585307966942713416391033882754318613643490100943197409047331014476299861725424423355612237435715825933382804986243892498222780715951762757847109475119033482241412025182688713728193104253478196128440176479531505057110722974314569915223451643121848657575786528197564843508958384722923534559464521215831657751471298708225909292655638836651120681943836904116252668710044560243704200663709001941185557160472044643696932850060046928140507119069261393993902735534545567470314903886022024639948260501762431969305640666366626090207048887438898907498152865444381862917382901051820869936382661868303915273264581286782806601337500096593364625146091723180312930347877421234679118454791311109897794648216922505629399956793483801699157439700537542134485874586856047286751065423341893839099110586465595113646061055156838541217459801807133163612573079611168343863767667307354583494789788316330129240800836356825939157113130978030516441716682518346573675934198084958947940983292500086389778563494693212473426103062713745077286156922596628573857905533240641849018451328284632709269753830867308409142247659474439973348130810986399417379789657010687026734161967196591599588537834822988270125605842365589539690306474965584147981310997157542043256395776070485100881578291408250777738559790129129407309462785944505859412273194812753225152324801503466519048228961406646890305102510916237770448486230229488966711380555607956620732449373374027836767300203011615227008921843515652121379215748206859356920790214502277133099987729459596952817044582181956080965811702798062669891205061560742325686842271306295009864421853470810407128917646906550836129916694778023822502789667843489199409657361704586786242554006942516693979292624714524945408858422726153755260071904336329196375777502176005195800693847635789586878489536872122898557806826518192703632099480155874455575175312736471421295536494084385586615208012115079075068553344489258693283859653013272046970694571546959353658571788894862333292465202735853188533370948455403336565356988172582528918056635488363743793348411845580168331827676834646291995605513470039147876808640322629616641560667508153710646723108461964247537490553744805318226002710216400980584497526023035640038083472053149941172965736785066421400842696497103241919182121213206939769143923368374709228267738708132236680086924703491586840991153098315412063566123187504305467536983230827966457417620806593177265685841681837966106144963432544111706941700222657817358351259821080769101961052229263879745049019254311900620561906577452416191913187533984049343976823310298465893318373015809592522829206820862230332585280119266496314441316442773003237792274712330696417149945532261035475145631290668854345426869788447742981777493710117614651624183616680254815296335308490849943006763654806102940094693750609845588558043970485914449584445079978497045583550685408745163316464118083123079704389849190506587586425810738422420591191941674182490452700288263983057950057341711487031187142834184499153456702915280104485145176055306971441761368582384102787659324662689978418319620312262421177391477208004883578333569204533935953254564897028558589735505751235129536540502842081022785248776603574246366673148680279486052445782673626230852978265057114624846595914210278122788941448163994973881884622768244851622051817076722169863265701654316919742651230041757329904473537672536845792754365412826553581858046840069367718605020070547247548400805530424951854495267247261347318174742180078574693465447136036975884118029408039616746946288540679172138601225419503819704538417268006398820656328792839582708510919958839448297775647152026132871089526163417707151642899487953564854553553148754978134009964854498635824847690590033116961303766127923464323129706628411307427046202032013368350385425360313636763575212604707425311209233402837482949453104727418969287275572027615272268283376741393425652653283068469997597097750005560889932685025049212884068274139881631540456490350775871680074055685724021758685439053228133770707415830756269628316955687424060527726485853050611356384851965918968649596335568216975437621430778665934730450164822432964891270709898076676625671517269062058815549666382573829274182082278960684488222983394816670984039024283514306813767253460126007269262969468672750794346190439996618979611928750519442356402644303271737341591281496056168353988188569484045342311424613559925272330064881627466723523751234311893442118885085079358163848994487544756331689213869675574302737953785262542329024881047181939037220666894702204258836895840939998453560948869946833852579675161882159410981624918741813364726965123980677561947912557957446471427868624053750576104204267149366084980238274680575982591331006919941904651906531171908926077949119217946407355129633864523035673345588033313197080365457184791550432654899559705862888286866606618021882248602144999973122164138170653480175510438406624412822803616648904257377640956326482825258407669045608439490325290526337532316509087681336614242398309530806549661879381949120033919489494065132398816642080088395554942237096734840072642705701165089075196155370186264797456381187856175457113400473810762763014953309735174180655479112660938034311378532532883533352024934365979129341284854970946826329075830193072665337782559314331110963848053940859283988907796210479847919686876539987477095912788727475874439806779824968278272200926449944559380414608770641941810440758269805688038949654616587983904660587645341810289907194293021774519976104495043196841503455514044820928933378657363052830619990077748726922998608279053171691876578860908941817057993404890218441559791092676862796597583952483926734883634745651687016166240642424241228961118010615682342539392180052483454723779219911228595914191877491793823340010078128326506710281781396029120914720100947878752551263372884222353869490067927664511634758101193875319657242121476038284774774571704578610417385747911301908583877890152334343013005282797038580359815182929600305682612091950943737325454171056383887047528950563961029843641360935641632589408137981511693338619797339821670761004607980096016024823096943043806956620123213650140549586250615282588033022908385812478469315720323233601899469437647726721879376826431828382603564520699468630216048874528424363593558622333506235945002890558581611275341783750455936126130852640828051213873177490200249552738734585956405160830583053770732533971552620444705429573538361113677523169972740292941674204423248113875075631319078272188864053374694213842169928862940479635305150560788126366206497231257579019598873041195626227343728900516561111094111745277965482790471250581999077498063821559376885546498822938985408291325129076478386322494781016753491693489288104203015610283386143827378160946341335383578340765314321417150655877547820252454780657301342277470616744241968952613164274104695474621483756288299771804186785084546965619150908695874251184435837306590951460980451247409411373899927822492983367796011015387096129749705566301637307202750734759922943792393824427421186158236161317886392553095117188421298508307238259729144142251579403883011359083331651858234967221259621812507058113759495525022747274674369887131926670769299199084467161228738858457584622726573330753735572823951616964175198675012681745429323738294143824814377139861906716657572945807804820559511881687188075212971832636442155336787751274766940790117057509819575084563565217389544179875074523854455200133572033332379895074393905312918212255259833790909463630202185353848854825062897715616963860712382771725621313460549401770413581731931763370136332252819127547191443450920711848838366818174263342949611870091503049165339464763717766439120798347494627397822171502090670190302469762151278521956142070806461631373236517853976292092025500288962012970141379640038055734949269073535145961208674796547733692958773628635660143767964038430796864138563447801328261284589184898528048048844180821639423974014362903481665458114454366460032490618763039502356402044530748210241366895196644221339200757479128683805175150634662569391937740283512075666260829890491877287833852178522792045771846965855278790447562192663992008409302075673925363735628390829817577902153202106409617373283598494066652141198183810884515459772895164572131897797907491941013148368544639616904607030107596818933741217575988165127000761262789169510406315857637534787420070222051070891257612361658026806815858499852631465878086616800733264676830206391697203064894405628195406190685242003053463156621891327309069687353181641094514288036605995220248248886711554429104721929134248346438705368508648749099178812670565665387191049721820042371492740164460943459845392536706132210616533085662021188968234005752675486101476993688738209584552211571923479686888160853631615862880150395949418529489227074410828207169303387818084936204018255222271010985653444817207470756019245915599431072949578197878590578940052540122867517142511184356437184053563024181225473266093302710397968091064939272722683035410467632591355279683837705019855234621222858410557119921731717969804339317707750755627056047831779844447637560254637033369247114220815519973691371975163241302748712199863404548248524570118553342675264715978310731245663429805221455494156252724028915333354349341217862037007260315279870771872491234494477147909520734761385425485311552773301030342476835865496093722324007154518129732692081058424090557725645803681462234493189708138897143299831347617799679712453782310703739151473878692119187566700319321281896803322696594459286210607438827416919465162267632540665070881071030394178860564893769816734159025925194611823642945652669372203155504700213598846292758012527715422016629954863130324912311029627923723899766416803497141226527931907636326136814145516376656559839788489381733082668779901962886932296597379951931621187215455287394170243669885593888793316744533363119541518404088283815193421234122820030950313341050704760159987985472529190665222479319715440331794836837373220821885773341623856441380700541913530245943913502554531886454796252260251762928374330465102361057583514550739443339610216229675461415781127197001738611494279501411253280621254775810512972088465263158094806633687670147310733540717710876615935856814098212967730759197382973441445256688770855324570888958320993823432102718224114763732791357568615421252849657903335093152776925505845644010552192644505312073756287744998163646332835816140330175813967359427327690448920361880386754955751806890058532927201493923500525845146706982628548257883267398735220457228239290207144822219885587102896991935873074277815159757620764023951243860202032596596250212578349957710085626386118233813318509014686577064010676278617583772772895892746039403930337271873850536912957126715066896688493880885142943609962012966759079225082275313812849851526902931700263136328942095797577959327635531162066753488651317323872438748063513314512644889967589828812925480076425186586490241111127301357197181381602583178506932244007998656635371544088454866393181708395735780799059730839094881804060935959190907473960904410150516321749681412100765719177483767355751000733616922386537429079457803200042337452807566153042929014495780629634138383551783599764708851349004856973697965238695845994595592090709058956891451141412684505462117945026611750166928260250950770778211950432617383223562437601776799362796099368975191394965033358507155418436456852616674243688920371037495328425927131610537834980740739158633817967658425258036737206469351248652238481341663808061505704829059890696451936440018597120425723007316410009916987524260377362177763430621616744884930810929901009517974541564251204822086714586849255132444266777127863728211331536224301091824391243380214046242223349153559516890816288487989988273630445372432174280215755777967021666317047969728172483392841015642274507271779269399929740308072770395013581545142494049026536105825409373114653104943382484379718606937214444600826798002471229489405761853892203425608302697052876621377373594394224114707074072902725461307358541745691419446487624357682397065703184168467540733466346293673983620004041400714054277632480132742202685393698869787607009590048684650626771363070979821006557285101306601010780633743344773073478653881742681230743766066643312775356466578603715192922768440458273283243808212841218776132042460464900801054731426749260826922155637405486241717031027919996942645620955619816454547662045022411449404749349832206807191352767986747813458203859570413466177937228534940031631599544093684089572533438702986717829770373332806801764639502090023941931499115009105276821119510999063166150311585582835582607179410052528583611369961303442790173811787412061288182062023263849861515656451230047792967563618345768105043341769543067538041113928553792529241347339481050532025708728186307291158911335942014761872664291564036371927602306283840650425441742335464549987055318726887926424102147363698625463747159744354943443899730051742525110877357886390946812096673428152585919924857640488055071329814299359911463239919113959926752576359007446572810191805841807342227734721397723218231771716916400108826112549093361186780575722391018186168549108500885272274374212086524852372456248697662245384819298671129452945515497030585919307198497105414181636968976131126744027009648667545934567059936995464500558921628047976365686133316563907395703272034389175415267500915011198856872708848195531676931681272892143031376818016445477367518353497857924276463354162433601125960252109501612264110346083465648235597934274056868849224458745493776752120324703803035491157544831295275891939893680876327685438769557694881422844311998595700727521393176837831770339130423060958999137314684569010422095161967070506420256733873446115655276175992727151877660010238944760539789516945708802728736225121076224091810066700883474737605156285533943565843756271241244457651663064085939507947550920463932245202535463634444791755661725962187199279186575490857852950012840229035061514937310107009446151011613712423761426722541732055959202782129325725947146417224977321316381845326555279604270541871496236585252458648933254145062642337885651464670604298564781968461593663288954299780722542264790400616019751975007460545150060291806638271497016110987951336633771378434416194053121445291855180136575558667615019373029691932076120009255065081583275508499340768797252369987023567931026804136745718956641431852679054717169962990363015545645090044802789055701968328313630718997699153166679208958768572290600915472919636381673596673959975710326015571920237348580521128117458610065152598883843114511894880552129145775699146577530041384717124577965048175856395072895337539755822087777506072339445587895905719156735) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-input-width-too-small/max-input-width-too-small.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc new file mode 100644 index 00000000..ec462425 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc @@ -0,0 +1,5 @@ +-- Check that one more than the maximum allowable input (ie, 2^65536) doesn't fit into the maximum width. +(program 1.0.0 + [(builtin integerToByteString) (con bool False) (con integer 8192) (con integer 2003529930406846464979072351560255750447825475569751419265016973710894059556311453089506130880933348101038234342907263181822949382118812668869506364761547029165041871916351587966347219442930927982084309104855990570159318959639524863372367203002916969592156108764948889254090805911457037675208500206671563702366126359747144807111774815880914135742720967190151836282560618091458852699826141425030123391108273603843767876449043205960379124490905707560314035076162562476031863793126484703743782954975613770981604614413308692118102485959152380195331030292162800160568670105651646750568038741529463842244845292537361442533614373729088303794601274724958414864915930647252015155693922628180691650796381064132275307267143998158508811292628901134237782705567421080070065283963322155077831214288551675554073345107213112427399562982719769150054883905223804357045848197956393157853510018992000024141963706813559840464039472194016069517690156119726982337890017641517190051133466306898140219383481435426387306539552969691388024158161859561100640362119796101859534802787167200122604642492385111393400464351623867567078745259464670903886547743483217897012764455529409092021959585751622973333576159552394885297579954028471943529913543763705986928913757153740001986394332464890052543106629669165243419174691389632476560289415199775477703138064781342309596190960654591300890188887588084733625956065444888501447335706058817090162108499714529568344061979690565469813631162053579369791403236328496233046421066136200220175787851857409162050489711781820400187282939943446186224328009837323764931814789848119452713007440220765680910376203999203492023906626264491909167985461515778839060397720759279378852241294301017458086862263369284725851403039615558564330385450688652213114813638408384778263790459607186876728509763471271988890680478243230394718650525660978150729861141430305816927924971409161059417185352275887504477592218301158780701975535722241400019548102005661773589781499532325208589753463547007786690406429016763808161740550405117670093673202804549339027992491867306539931640720492238474815280619166900933805732120816350707634351669869625020969023162859350071874190579161241536897514808261904847946571736601005892476655445840838334790544144817684255327207315586349347605137419779525190365032198020108764738368682531025183377533908861426184800374008082238104076468878471647552945326947661700424461063311238021134588694532200116564076327023074292426051582811070387018345324567635625951430032037432740780879056283663406965030844225855967039271869461158513793386475699748568670079823960604393478850861649260304945061743412365828352144806726676841807083754862211408236579802961200027441324438432402331257403545019352428776430880232850855886089962774458164680857875115807014743763867976955049991643998284357290415378143438847303484261903388841494031366139854257635577105335580206622185577060082551288893332226436281984838613239570676191409638533832374343758830859233722284644287996245605476932428998432652677378373173288063210753211238680604674708428051166488709084770291208161104912555598322366244868556651402684641209694982590565519216188104341226838996283071654868525536914850299539675503954938371853405900096187489473992880432496373165753803673586710175783994818471798498246948060532081996066183434012476096639519778021441199752546704080608499344178256285092726523709898651539462193004607364507926212975917698293892367015170992091531567814439791248475706237804600009918293321306880570046591458387208088016887445835557926258465124763087148566313528934166117490617526671492672176128330845273936469244582892571388877839056300482483799839692029222215486145902373478222682521639957440801727144146179559226175083889020074169926238300282286249284182671243405751424188569994272331606998712986882771820617214453142574944015066139463169197629181506579745526236191224848063890033669074365989226349564114665503062965960199720636202603521917776740668777463549375318899587866282125469797102065747232721372918144666659421872003474508942830911535189271114287108376159222380276605327823351661555149369375778466670145717971901227117812780450240026384758788339396817962950690798817121690686929538248529830023476068454114178139110648560236549754227497231007615131870024053910510913817843721791422528587432098524957878034683703337818421444017138688124249984418618129271198533315382567321870421530631197748535214670955334626336610864667332292409879849256691109516143618601548909740241913509623043612196128165950518666022030715613684732364660868905014263913906515063908199378852318365059897299125404479443425166774299659811849233151555272883274028352688442408752811283289980625912673699546247341543333500147231430612750390307397135252069338173843322950701049061867539433130784798015655130384758155685236218010419650255596181934986315913233036096461905990236112681196023441843363334594927631946101716652913823717182394299216272538461776065694542297877071383198817036964588689811863210976900355735884624464835706291453052757101278872027965364479724025405448132748391794128826423835171949197209797145936887537198729130831738033911016128547415377377715951728084111627597186384924222802373441925469991983672192131287035585307966942713416391033882754318613643490100943197409047331014476299861725424423355612237435715825933382804986243892498222780715951762757847109475119033482241412025182688713728193104253478196128440176479531505057110722974314569915223451643121848657575786528197564843508958384722923534559464521215831657751471298708225909292655638836651120681943836904116252668710044560243704200663709001941185557160472044643696932850060046928140507119069261393993902735534545567470314903886022024639948260501762431969305640666366626090207048887438898907498152865444381862917382901051820869936382661868303915273264581286782806601337500096593364625146091723180312930347877421234679118454791311109897794648216922505629399956793483801699157439700537542134485874586856047286751065423341893839099110586465595113646061055156838541217459801807133163612573079611168343863767667307354583494789788316330129240800836356825939157113130978030516441716682518346573675934198084958947940983292500086389778563494693212473426103062713745077286156922596628573857905533240641849018451328284632709269753830867308409142247659474439973348130810986399417379789657010687026734161967196591599588537834822988270125605842365589539690306474965584147981310997157542043256395776070485100881578291408250777738559790129129407309462785944505859412273194812753225152324801503466519048228961406646890305102510916237770448486230229488966711380555607956620732449373374027836767300203011615227008921843515652121379215748206859356920790214502277133099987729459596952817044582181956080965811702798062669891205061560742325686842271306295009864421853470810407128917646906550836129916694778023822502789667843489199409657361704586786242554006942516693979292624714524945408858422726153755260071904336329196375777502176005195800693847635789586878489536872122898557806826518192703632099480155874455575175312736471421295536494084385586615208012115079075068553344489258693283859653013272046970694571546959353658571788894862333292465202735853188533370948455403336565356988172582528918056635488363743793348411845580168331827676834646291995605513470039147876808640322629616641560667508153710646723108461964247537490553744805318226002710216400980584497526023035640038083472053149941172965736785066421400842696497103241919182121213206939769143923368374709228267738708132236680086924703491586840991153098315412063566123187504305467536983230827966457417620806593177265685841681837966106144963432544111706941700222657817358351259821080769101961052229263879745049019254311900620561906577452416191913187533984049343976823310298465893318373015809592522829206820862230332585280119266496314441316442773003237792274712330696417149945532261035475145631290668854345426869788447742981777493710117614651624183616680254815296335308490849943006763654806102940094693750609845588558043970485914449584445079978497045583550685408745163316464118083123079704389849190506587586425810738422420591191941674182490452700288263983057950057341711487031187142834184499153456702915280104485145176055306971441761368582384102787659324662689978418319620312262421177391477208004883578333569204533935953254564897028558589735505751235129536540502842081022785248776603574246366673148680279486052445782673626230852978265057114624846595914210278122788941448163994973881884622768244851622051817076722169863265701654316919742651230041757329904473537672536845792754365412826553581858046840069367718605020070547247548400805530424951854495267247261347318174742180078574693465447136036975884118029408039616746946288540679172138601225419503819704538417268006398820656328792839582708510919958839448297775647152026132871089526163417707151642899487953564854553553148754978134009964854498635824847690590033116961303766127923464323129706628411307427046202032013368350385425360313636763575212604707425311209233402837482949453104727418969287275572027615272268283376741393425652653283068469997597097750005560889932685025049212884068274139881631540456490350775871680074055685724021758685439053228133770707415830756269628316955687424060527726485853050611356384851965918968649596335568216975437621430778665934730450164822432964891270709898076676625671517269062058815549666382573829274182082278960684488222983394816670984039024283514306813767253460126007269262969468672750794346190439996618979611928750519442356402644303271737341591281496056168353988188569484045342311424613559925272330064881627466723523751234311893442118885085079358163848994487544756331689213869675574302737953785262542329024881047181939037220666894702204258836895840939998453560948869946833852579675161882159410981624918741813364726965123980677561947912557957446471427868624053750576104204267149366084980238274680575982591331006919941904651906531171908926077949119217946407355129633864523035673345588033313197080365457184791550432654899559705862888286866606618021882248602144999973122164138170653480175510438406624412822803616648904257377640956326482825258407669045608439490325290526337532316509087681336614242398309530806549661879381949120033919489494065132398816642080088395554942237096734840072642705701165089075196155370186264797456381187856175457113400473810762763014953309735174180655479112660938034311378532532883533352024934365979129341284854970946826329075830193072665337782559314331110963848053940859283988907796210479847919686876539987477095912788727475874439806779824968278272200926449944559380414608770641941810440758269805688038949654616587983904660587645341810289907194293021774519976104495043196841503455514044820928933378657363052830619990077748726922998608279053171691876578860908941817057993404890218441559791092676862796597583952483926734883634745651687016166240642424241228961118010615682342539392180052483454723779219911228595914191877491793823340010078128326506710281781396029120914720100947878752551263372884222353869490067927664511634758101193875319657242121476038284774774571704578610417385747911301908583877890152334343013005282797038580359815182929600305682612091950943737325454171056383887047528950563961029843641360935641632589408137981511693338619797339821670761004607980096016024823096943043806956620123213650140549586250615282588033022908385812478469315720323233601899469437647726721879376826431828382603564520699468630216048874528424363593558622333506235945002890558581611275341783750455936126130852640828051213873177490200249552738734585956405160830583053770732533971552620444705429573538361113677523169972740292941674204423248113875075631319078272188864053374694213842169928862940479635305150560788126366206497231257579019598873041195626227343728900516561111094111745277965482790471250581999077498063821559376885546498822938985408291325129076478386322494781016753491693489288104203015610283386143827378160946341335383578340765314321417150655877547820252454780657301342277470616744241968952613164274104695474621483756288299771804186785084546965619150908695874251184435837306590951460980451247409411373899927822492983367796011015387096129749705566301637307202750734759922943792393824427421186158236161317886392553095117188421298508307238259729144142251579403883011359083331651858234967221259621812507058113759495525022747274674369887131926670769299199084467161228738858457584622726573330753735572823951616964175198675012681745429323738294143824814377139861906716657572945807804820559511881687188075212971832636442155336787751274766940790117057509819575084563565217389544179875074523854455200133572033332379895074393905312918212255259833790909463630202185353848854825062897715616963860712382771725621313460549401770413581731931763370136332252819127547191443450920711848838366818174263342949611870091503049165339464763717766439120798347494627397822171502090670190302469762151278521956142070806461631373236517853976292092025500288962012970141379640038055734949269073535145961208674796547733692958773628635660143767964038430796864138563447801328261284589184898528048048844180821639423974014362903481665458114454366460032490618763039502356402044530748210241366895196644221339200757479128683805175150634662569391937740283512075666260829890491877287833852178522792045771846965855278790447562192663992008409302075673925363735628390829817577902153202106409617373283598494066652141198183810884515459772895164572131897797907491941013148368544639616904607030107596818933741217575988165127000761262789169510406315857637534787420070222051070891257612361658026806815858499852631465878086616800733264676830206391697203064894405628195406190685242003053463156621891327309069687353181641094514288036605995220248248886711554429104721929134248346438705368508648749099178812670565665387191049721820042371492740164460943459845392536706132210616533085662021188968234005752675486101476993688738209584552211571923479686888160853631615862880150395949418529489227074410828207169303387818084936204018255222271010985653444817207470756019245915599431072949578197878590578940052540122867517142511184356437184053563024181225473266093302710397968091064939272722683035410467632591355279683837705019855234621222858410557119921731717969804339317707750755627056047831779844447637560254637033369247114220815519973691371975163241302748712199863404548248524570118553342675264715978310731245663429805221455494156252724028915333354349341217862037007260315279870771872491234494477147909520734761385425485311552773301030342476835865496093722324007154518129732692081058424090557725645803681462234493189708138897143299831347617799679712453782310703739151473878692119187566700319321281896803322696594459286210607438827416919465162267632540665070881071030394178860564893769816734159025925194611823642945652669372203155504700213598846292758012527715422016629954863130324912311029627923723899766416803497141226527931907636326136814145516376656559839788489381733082668779901962886932296597379951931621187215455287394170243669885593888793316744533363119541518404088283815193421234122820030950313341050704760159987985472529190665222479319715440331794836837373220821885773341623856441380700541913530245943913502554531886454796252260251762928374330465102361057583514550739443339610216229675461415781127197001738611494279501411253280621254775810512972088465263158094806633687670147310733540717710876615935856814098212967730759197382973441445256688770855324570888958320993823432102718224114763732791357568615421252849657903335093152776925505845644010552192644505312073756287744998163646332835816140330175813967359427327690448920361880386754955751806890058532927201493923500525845146706982628548257883267398735220457228239290207144822219885587102896991935873074277815159757620764023951243860202032596596250212578349957710085626386118233813318509014686577064010676278617583772772895892746039403930337271873850536912957126715066896688493880885142943609962012966759079225082275313812849851526902931700263136328942095797577959327635531162066753488651317323872438748063513314512644889967589828812925480076425186586490241111127301357197181381602583178506932244007998656635371544088454866393181708395735780799059730839094881804060935959190907473960904410150516321749681412100765719177483767355751000733616922386537429079457803200042337452807566153042929014495780629634138383551783599764708851349004856973697965238695845994595592090709058956891451141412684505462117945026611750166928260250950770778211950432617383223562437601776799362796099368975191394965033358507155418436456852616674243688920371037495328425927131610537834980740739158633817967658425258036737206469351248652238481341663808061505704829059890696451936440018597120425723007316410009916987524260377362177763430621616744884930810929901009517974541564251204822086714586849255132444266777127863728211331536224301091824391243380214046242223349153559516890816288487989988273630445372432174280215755777967021666317047969728172483392841015642274507271779269399929740308072770395013581545142494049026536105825409373114653104943382484379718606937214444600826798002471229489405761853892203425608302697052876621377373594394224114707074072902725461307358541745691419446487624357682397065703184168467540733466346293673983620004041400714054277632480132742202685393698869787607009590048684650626771363070979821006557285101306601010780633743344773073478653881742681230743766066643312775356466578603715192922768440458273283243808212841218776132042460464900801054731426749260826922155637405486241717031027919996942645620955619816454547662045022411449404749349832206807191352767986747813458203859570413466177937228534940031631599544093684089572533438702986717829770373332806801764639502090023941931499115009105276821119510999063166150311585582835582607179410052528583611369961303442790173811787412061288182062023263849861515656451230047792967563618345768105043341769543067538041113928553792529241347339481050532025708728186307291158911335942014761872664291564036371927602306283840650425441742335464549987055318726887926424102147363698625463747159744354943443899730051742525110877357886390946812096673428152585919924857640488055071329814299359911463239919113959926752576359007446572810191805841807342227734721397723218231771716916400108826112549093361186780575722391018186168549108500885272274374212086524852372456248697662245384819298671129452945515497030585919307198497105414181636968976131126744027009648667545934567059936995464500558921628047976365686133316563907395703272034389175415267500915011198856872708848195531676931681272892143031376818016445477367518353497857924276463354162433601125960252109501612264110346083465648235597934274056868849224458745493776752120324703803035491157544831295275891939893680876327685438769557694881422844311998595700727521393176837831770339130423060958999137314684569010422095161967070506420256733873446115655276175992727151877660010238944760539789516945708802728736225121076224091810066700883474737605156285533943565843756271241244457651663064085939507947550920463932245202535463634444791755661725962187199279186575490857852950012840229035061514937310107009446151011613712423761426722541732055959202782129325725947146417224977321316381845326555279604270541871496236585252458648933254145062642337885651464670604298564781968461593663288954299780722542264790400616019751975007460545150060291806638271497016110987951336633771378434416194053121445291855180136575558667615019373029691932076120009255065081583275508499340768797252369987023567931026804136745718956641431852679054717169962990363015545645090044802789055701968328313630718997699153166679208958768572290600915472919636381673596673959975710326015571920237348580521128117458610065152598883843114511894880552129145775699146577530041384717124577965048175856395072895337539755822087777506072339445587895905719156736) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/max-width-input-too-big/max-width-input-too-big.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc new file mode 100644 index 00000000..b7440918 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc @@ -0,0 +1,4 @@ +-- Check that we can encode zero using the maximum width (8192). +(program 1.0.0 + [(builtin integerToByteString) (con bool False) (con integer 8192) (con integer 0)] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected new file mode 100644 index 00000000..ce3a2a71 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1434707 +| mem: 801}) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.expected new file mode 100644 index 00000000..2dda4edd --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bytestring + #0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/negative-input/negative-input.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/negative-input/negative-input.uplc new file mode 100644 index 00000000..50bc0e37 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/negative-input/negative-input.uplc @@ -0,0 +1,5 @@ +-- Negative inputs give an error +(program 1.0.0 + [(builtin integerToByteString) (con bool False) (con integer 20) (con integer -5)] +) + \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/negative-input/negative-input.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/negative-input/negative-input.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/negative-input/negative-input.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/negative-input/negative-input.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/negative-input/negative-input.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/negative-input/negative-input.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/negative-width/negative-width.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/negative-width/negative-width.uplc new file mode 100644 index 00000000..c1cf7b89 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/negative-width/negative-width.uplc @@ -0,0 +1,5 @@ +-- Negative widths give an error +(program 1.0.0 + [(builtin integerToByteString) (con bool False) (con integer -20) (con integer 5)] +) + \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/negative-width/negative-width.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/negative-width/negative-width.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/negative-width/negative-width.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/negative-width/negative-width.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/negative-width/negative-width.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/negative-width/negative-width.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/too-narrow/too-narrow.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/too-narrow/too-narrow.uplc new file mode 100644 index 00000000..31568f7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/too-narrow/too-narrow.uplc @@ -0,0 +1,4 @@ +-- Check that trying to encode an integer to a bytestring using too narrow a width fails. +(program 1.0.0 + [(builtin integerToByteString) (con bool False) (con integer 5) (con integer 20016001699311)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/too-narrow/too-narrow.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/too-narrow/too-narrow.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/too-narrow/too-narrow.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/too-narrow/too-narrow.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/too-narrow/too-narrow.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/too-narrow/too-narrow.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/width-too-big-zero/width-too-big-zero.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/width-too-big-zero/width-too-big-zero.uplc new file mode 100644 index 00000000..f7e32da6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/width-too-big-zero/width-too-big-zero.uplc @@ -0,0 +1,4 @@ +-- Check that a width greater than the maximum of 8192 is rejected when encoding zero. +(program 1.0.0 + [(builtin integerToByteString) (con bool False) (con integer 8193) (con integer 0)] +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/width-too-big-zero/width-too-big-zero.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc new file mode 100644 index 00000000..741f7964 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc @@ -0,0 +1,4 @@ +-- Zero should encode to a bytestring consisting entirely of zero bytes. +(program 1.0.0 + [(builtin integerToByteString) (con bool False) (con integer 12) (con integer 0)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc.budget.expected new file mode 100644 index 00000000..ce3a2a71 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1434707 +| mem: 801}) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc.expected new file mode 100644 index 00000000..be51b470 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bytestring #000000000000000000000000)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc new file mode 100644 index 00000000..a3455e2c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc @@ -0,0 +1,4 @@ +-- Check that a particular integer encodes to the expected bytestring. +(program 1.0.0 + [(builtin integerToByteString) (con bool False) (con integer 0) (con integer 20016001699311)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc.budget.expected new file mode 100644 index 00000000..0bc43be7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1434707 +| mem: 801}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc.expected new file mode 100644 index 00000000..8383aeb2 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bytestring #efcdab563412)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/input-too-big/input-too-big.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/input-too-big/input-too-big.uplc new file mode 100644 index 00000000..f6851a21 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/input-too-big/input-too-big.uplc @@ -0,0 +1,5 @@ +-- Check that one more than the maximum allowable input (ie, 2^65536) is rejected. +(program 1.0.0 + [(builtin integerToByteString) (con bool False) (con integer 0) (con integer 2003529930406846464979072351560255750447825475569751419265016973710894059556311453089506130880933348101038234342907263181822949382118812668869506364761547029165041871916351587966347219442930927982084309104855990570159318959639524863372367203002916969592156108764948889254090805911457037675208500206671563702366126359747144807111774815880914135742720967190151836282560618091458852699826141425030123391108273603843767876449043205960379124490905707560314035076162562476031863793126484703743782954975613770981604614413308692118102485959152380195331030292162800160568670105651646750568038741529463842244845292537361442533614373729088303794601274724958414864915930647252015155693922628180691650796381064132275307267143998158508811292628901134237782705567421080070065283963322155077831214288551675554073345107213112427399562982719769150054883905223804357045848197956393157853510018992000024141963706813559840464039472194016069517690156119726982337890017641517190051133466306898140219383481435426387306539552969691388024158161859561100640362119796101859534802787167200122604642492385111393400464351623867567078745259464670903886547743483217897012764455529409092021959585751622973333576159552394885297579954028471943529913543763705986928913757153740001986394332464890052543106629669165243419174691389632476560289415199775477703138064781342309596190960654591300890188887588084733625956065444888501447335706058817090162108499714529568344061979690565469813631162053579369791403236328496233046421066136200220175787851857409162050489711781820400187282939943446186224328009837323764931814789848119452713007440220765680910376203999203492023906626264491909167985461515778839060397720759279378852241294301017458086862263369284725851403039615558564330385450688652213114813638408384778263790459607186876728509763471271988890680478243230394718650525660978150729861141430305816927924971409161059417185352275887504477592218301158780701975535722241400019548102005661773589781499532325208589753463547007786690406429016763808161740550405117670093673202804549339027992491867306539931640720492238474815280619166900933805732120816350707634351669869625020969023162859350071874190579161241536897514808261904847946571736601005892476655445840838334790544144817684255327207315586349347605137419779525190365032198020108764738368682531025183377533908861426184800374008082238104076468878471647552945326947661700424461063311238021134588694532200116564076327023074292426051582811070387018345324567635625951430032037432740780879056283663406965030844225855967039271869461158513793386475699748568670079823960604393478850861649260304945061743412365828352144806726676841807083754862211408236579802961200027441324438432402331257403545019352428776430880232850855886089962774458164680857875115807014743763867976955049991643998284357290415378143438847303484261903388841494031366139854257635577105335580206622185577060082551288893332226436281984838613239570676191409638533832374343758830859233722284644287996245605476932428998432652677378373173288063210753211238680604674708428051166488709084770291208161104912555598322366244868556651402684641209694982590565519216188104341226838996283071654868525536914850299539675503954938371853405900096187489473992880432496373165753803673586710175783994818471798498246948060532081996066183434012476096639519778021441199752546704080608499344178256285092726523709898651539462193004607364507926212975917698293892367015170992091531567814439791248475706237804600009918293321306880570046591458387208088016887445835557926258465124763087148566313528934166117490617526671492672176128330845273936469244582892571388877839056300482483799839692029222215486145902373478222682521639957440801727144146179559226175083889020074169926238300282286249284182671243405751424188569994272331606998712986882771820617214453142574944015066139463169197629181506579745526236191224848063890033669074365989226349564114665503062965960199720636202603521917776740668777463549375318899587866282125469797102065747232721372918144666659421872003474508942830911535189271114287108376159222380276605327823351661555149369375778466670145717971901227117812780450240026384758788339396817962950690798817121690686929538248529830023476068454114178139110648560236549754227497231007615131870024053910510913817843721791422528587432098524957878034683703337818421444017138688124249984418618129271198533315382567321870421530631197748535214670955334626336610864667332292409879849256691109516143618601548909740241913509623043612196128165950518666022030715613684732364660868905014263913906515063908199378852318365059897299125404479443425166774299659811849233151555272883274028352688442408752811283289980625912673699546247341543333500147231430612750390307397135252069338173843322950701049061867539433130784798015655130384758155685236218010419650255596181934986315913233036096461905990236112681196023441843363334594927631946101716652913823717182394299216272538461776065694542297877071383198817036964588689811863210976900355735884624464835706291453052757101278872027965364479724025405448132748391794128826423835171949197209797145936887537198729130831738033911016128547415377377715951728084111627597186384924222802373441925469991983672192131287035585307966942713416391033882754318613643490100943197409047331014476299861725424423355612237435715825933382804986243892498222780715951762757847109475119033482241412025182688713728193104253478196128440176479531505057110722974314569915223451643121848657575786528197564843508958384722923534559464521215831657751471298708225909292655638836651120681943836904116252668710044560243704200663709001941185557160472044643696932850060046928140507119069261393993902735534545567470314903886022024639948260501762431969305640666366626090207048887438898907498152865444381862917382901051820869936382661868303915273264581286782806601337500096593364625146091723180312930347877421234679118454791311109897794648216922505629399956793483801699157439700537542134485874586856047286751065423341893839099110586465595113646061055156838541217459801807133163612573079611168343863767667307354583494789788316330129240800836356825939157113130978030516441716682518346573675934198084958947940983292500086389778563494693212473426103062713745077286156922596628573857905533240641849018451328284632709269753830867308409142247659474439973348130810986399417379789657010687026734161967196591599588537834822988270125605842365589539690306474965584147981310997157542043256395776070485100881578291408250777738559790129129407309462785944505859412273194812753225152324801503466519048228961406646890305102510916237770448486230229488966711380555607956620732449373374027836767300203011615227008921843515652121379215748206859356920790214502277133099987729459596952817044582181956080965811702798062669891205061560742325686842271306295009864421853470810407128917646906550836129916694778023822502789667843489199409657361704586786242554006942516693979292624714524945408858422726153755260071904336329196375777502176005195800693847635789586878489536872122898557806826518192703632099480155874455575175312736471421295536494084385586615208012115079075068553344489258693283859653013272046970694571546959353658571788894862333292465202735853188533370948455403336565356988172582528918056635488363743793348411845580168331827676834646291995605513470039147876808640322629616641560667508153710646723108461964247537490553744805318226002710216400980584497526023035640038083472053149941172965736785066421400842696497103241919182121213206939769143923368374709228267738708132236680086924703491586840991153098315412063566123187504305467536983230827966457417620806593177265685841681837966106144963432544111706941700222657817358351259821080769101961052229263879745049019254311900620561906577452416191913187533984049343976823310298465893318373015809592522829206820862230332585280119266496314441316442773003237792274712330696417149945532261035475145631290668854345426869788447742981777493710117614651624183616680254815296335308490849943006763654806102940094693750609845588558043970485914449584445079978497045583550685408745163316464118083123079704389849190506587586425810738422420591191941674182490452700288263983057950057341711487031187142834184499153456702915280104485145176055306971441761368582384102787659324662689978418319620312262421177391477208004883578333569204533935953254564897028558589735505751235129536540502842081022785248776603574246366673148680279486052445782673626230852978265057114624846595914210278122788941448163994973881884622768244851622051817076722169863265701654316919742651230041757329904473537672536845792754365412826553581858046840069367718605020070547247548400805530424951854495267247261347318174742180078574693465447136036975884118029408039616746946288540679172138601225419503819704538417268006398820656328792839582708510919958839448297775647152026132871089526163417707151642899487953564854553553148754978134009964854498635824847690590033116961303766127923464323129706628411307427046202032013368350385425360313636763575212604707425311209233402837482949453104727418969287275572027615272268283376741393425652653283068469997597097750005560889932685025049212884068274139881631540456490350775871680074055685724021758685439053228133770707415830756269628316955687424060527726485853050611356384851965918968649596335568216975437621430778665934730450164822432964891270709898076676625671517269062058815549666382573829274182082278960684488222983394816670984039024283514306813767253460126007269262969468672750794346190439996618979611928750519442356402644303271737341591281496056168353988188569484045342311424613559925272330064881627466723523751234311893442118885085079358163848994487544756331689213869675574302737953785262542329024881047181939037220666894702204258836895840939998453560948869946833852579675161882159410981624918741813364726965123980677561947912557957446471427868624053750576104204267149366084980238274680575982591331006919941904651906531171908926077949119217946407355129633864523035673345588033313197080365457184791550432654899559705862888286866606618021882248602144999973122164138170653480175510438406624412822803616648904257377640956326482825258407669045608439490325290526337532316509087681336614242398309530806549661879381949120033919489494065132398816642080088395554942237096734840072642705701165089075196155370186264797456381187856175457113400473810762763014953309735174180655479112660938034311378532532883533352024934365979129341284854970946826329075830193072665337782559314331110963848053940859283988907796210479847919686876539987477095912788727475874439806779824968278272200926449944559380414608770641941810440758269805688038949654616587983904660587645341810289907194293021774519976104495043196841503455514044820928933378657363052830619990077748726922998608279053171691876578860908941817057993404890218441559791092676862796597583952483926734883634745651687016166240642424241228961118010615682342539392180052483454723779219911228595914191877491793823340010078128326506710281781396029120914720100947878752551263372884222353869490067927664511634758101193875319657242121476038284774774571704578610417385747911301908583877890152334343013005282797038580359815182929600305682612091950943737325454171056383887047528950563961029843641360935641632589408137981511693338619797339821670761004607980096016024823096943043806956620123213650140549586250615282588033022908385812478469315720323233601899469437647726721879376826431828382603564520699468630216048874528424363593558622333506235945002890558581611275341783750455936126130852640828051213873177490200249552738734585956405160830583053770732533971552620444705429573538361113677523169972740292941674204423248113875075631319078272188864053374694213842169928862940479635305150560788126366206497231257579019598873041195626227343728900516561111094111745277965482790471250581999077498063821559376885546498822938985408291325129076478386322494781016753491693489288104203015610283386143827378160946341335383578340765314321417150655877547820252454780657301342277470616744241968952613164274104695474621483756288299771804186785084546965619150908695874251184435837306590951460980451247409411373899927822492983367796011015387096129749705566301637307202750734759922943792393824427421186158236161317886392553095117188421298508307238259729144142251579403883011359083331651858234967221259621812507058113759495525022747274674369887131926670769299199084467161228738858457584622726573330753735572823951616964175198675012681745429323738294143824814377139861906716657572945807804820559511881687188075212971832636442155336787751274766940790117057509819575084563565217389544179875074523854455200133572033332379895074393905312918212255259833790909463630202185353848854825062897715616963860712382771725621313460549401770413581731931763370136332252819127547191443450920711848838366818174263342949611870091503049165339464763717766439120798347494627397822171502090670190302469762151278521956142070806461631373236517853976292092025500288962012970141379640038055734949269073535145961208674796547733692958773628635660143767964038430796864138563447801328261284589184898528048048844180821639423974014362903481665458114454366460032490618763039502356402044530748210241366895196644221339200757479128683805175150634662569391937740283512075666260829890491877287833852178522792045771846965855278790447562192663992008409302075673925363735628390829817577902153202106409617373283598494066652141198183810884515459772895164572131897797907491941013148368544639616904607030107596818933741217575988165127000761262789169510406315857637534787420070222051070891257612361658026806815858499852631465878086616800733264676830206391697203064894405628195406190685242003053463156621891327309069687353181641094514288036605995220248248886711554429104721929134248346438705368508648749099178812670565665387191049721820042371492740164460943459845392536706132210616533085662021188968234005752675486101476993688738209584552211571923479686888160853631615862880150395949418529489227074410828207169303387818084936204018255222271010985653444817207470756019245915599431072949578197878590578940052540122867517142511184356437184053563024181225473266093302710397968091064939272722683035410467632591355279683837705019855234621222858410557119921731717969804339317707750755627056047831779844447637560254637033369247114220815519973691371975163241302748712199863404548248524570118553342675264715978310731245663429805221455494156252724028915333354349341217862037007260315279870771872491234494477147909520734761385425485311552773301030342476835865496093722324007154518129732692081058424090557725645803681462234493189708138897143299831347617799679712453782310703739151473878692119187566700319321281896803322696594459286210607438827416919465162267632540665070881071030394178860564893769816734159025925194611823642945652669372203155504700213598846292758012527715422016629954863130324912311029627923723899766416803497141226527931907636326136814145516376656559839788489381733082668779901962886932296597379951931621187215455287394170243669885593888793316744533363119541518404088283815193421234122820030950313341050704760159987985472529190665222479319715440331794836837373220821885773341623856441380700541913530245943913502554531886454796252260251762928374330465102361057583514550739443339610216229675461415781127197001738611494279501411253280621254775810512972088465263158094806633687670147310733540717710876615935856814098212967730759197382973441445256688770855324570888958320993823432102718224114763732791357568615421252849657903335093152776925505845644010552192644505312073756287744998163646332835816140330175813967359427327690448920361880386754955751806890058532927201493923500525845146706982628548257883267398735220457228239290207144822219885587102896991935873074277815159757620764023951243860202032596596250212578349957710085626386118233813318509014686577064010676278617583772772895892746039403930337271873850536912957126715066896688493880885142943609962012966759079225082275313812849851526902931700263136328942095797577959327635531162066753488651317323872438748063513314512644889967589828812925480076425186586490241111127301357197181381602583178506932244007998656635371544088454866393181708395735780799059730839094881804060935959190907473960904410150516321749681412100765719177483767355751000733616922386537429079457803200042337452807566153042929014495780629634138383551783599764708851349004856973697965238695845994595592090709058956891451141412684505462117945026611750166928260250950770778211950432617383223562437601776799362796099368975191394965033358507155418436456852616674243688920371037495328425927131610537834980740739158633817967658425258036737206469351248652238481341663808061505704829059890696451936440018597120425723007316410009916987524260377362177763430621616744884930810929901009517974541564251204822086714586849255132444266777127863728211331536224301091824391243380214046242223349153559516890816288487989988273630445372432174280215755777967021666317047969728172483392841015642274507271779269399929740308072770395013581545142494049026536105825409373114653104943382484379718606937214444600826798002471229489405761853892203425608302697052876621377373594394224114707074072902725461307358541745691419446487624357682397065703184168467540733466346293673983620004041400714054277632480132742202685393698869787607009590048684650626771363070979821006557285101306601010780633743344773073478653881742681230743766066643312775356466578603715192922768440458273283243808212841218776132042460464900801054731426749260826922155637405486241717031027919996942645620955619816454547662045022411449404749349832206807191352767986747813458203859570413466177937228534940031631599544093684089572533438702986717829770373332806801764639502090023941931499115009105276821119510999063166150311585582835582607179410052528583611369961303442790173811787412061288182062023263849861515656451230047792967563618345768105043341769543067538041113928553792529241347339481050532025708728186307291158911335942014761872664291564036371927602306283840650425441742335464549987055318726887926424102147363698625463747159744354943443899730051742525110877357886390946812096673428152585919924857640488055071329814299359911463239919113959926752576359007446572810191805841807342227734721397723218231771716916400108826112549093361186780575722391018186168549108500885272274374212086524852372456248697662245384819298671129452945515497030585919307198497105414181636968976131126744027009648667545934567059936995464500558921628047976365686133316563907395703272034389175415267500915011198856872708848195531676931681272892143031376818016445477367518353497857924276463354162433601125960252109501612264110346083465648235597934274056868849224458745493776752120324703803035491157544831295275891939893680876327685438769557694881422844311998595700727521393176837831770339130423060958999137314684569010422095161967070506420256733873446115655276175992727151877660010238944760539789516945708802728736225121076224091810066700883474737605156285533943565843756271241244457651663064085939507947550920463932245202535463634444791755661725962187199279186575490857852950012840229035061514937310107009446151011613712423761426722541732055959202782129325725947146417224977321316381845326555279604270541871496236585252458648933254145062642337885651464670604298564781968461593663288954299780722542264790400616019751975007460545150060291806638271497016110987951336633771378434416194053121445291855180136575558667615019373029691932076120009255065081583275508499340768797252369987023567931026804136745718956641431852679054717169962990363015545645090044802789055701968328313630718997699153166679208958768572290600915472919636381673596673959975710326015571920237348580521128117458610065152598883843114511894880552129145775699146577530041384717124577965048175856395072895337539755822087777506072339445587895905719156736) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/input-too-big/input-too-big.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/input-too-big/input-too-big.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/input-too-big/input-too-big.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/input-too-big/input-too-big.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/input-too-big/input-too-big.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/input-too-big/input-too-big.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc new file mode 100644 index 00000000..c08f0f03 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc @@ -0,0 +1,5 @@ +-- Check that the maximum allowable input (2^65536-1) is accepted. +(program 1.0.0 + [(builtin integerToByteString) (con bool False) (con integer 0) (con integer 2003529930406846464979072351560255750447825475569751419265016973710894059556311453089506130880933348101038234342907263181822949382118812668869506364761547029165041871916351587966347219442930927982084309104855990570159318959639524863372367203002916969592156108764948889254090805911457037675208500206671563702366126359747144807111774815880914135742720967190151836282560618091458852699826141425030123391108273603843767876449043205960379124490905707560314035076162562476031863793126484703743782954975613770981604614413308692118102485959152380195331030292162800160568670105651646750568038741529463842244845292537361442533614373729088303794601274724958414864915930647252015155693922628180691650796381064132275307267143998158508811292628901134237782705567421080070065283963322155077831214288551675554073345107213112427399562982719769150054883905223804357045848197956393157853510018992000024141963706813559840464039472194016069517690156119726982337890017641517190051133466306898140219383481435426387306539552969691388024158161859561100640362119796101859534802787167200122604642492385111393400464351623867567078745259464670903886547743483217897012764455529409092021959585751622973333576159552394885297579954028471943529913543763705986928913757153740001986394332464890052543106629669165243419174691389632476560289415199775477703138064781342309596190960654591300890188887588084733625956065444888501447335706058817090162108499714529568344061979690565469813631162053579369791403236328496233046421066136200220175787851857409162050489711781820400187282939943446186224328009837323764931814789848119452713007440220765680910376203999203492023906626264491909167985461515778839060397720759279378852241294301017458086862263369284725851403039615558564330385450688652213114813638408384778263790459607186876728509763471271988890680478243230394718650525660978150729861141430305816927924971409161059417185352275887504477592218301158780701975535722241400019548102005661773589781499532325208589753463547007786690406429016763808161740550405117670093673202804549339027992491867306539931640720492238474815280619166900933805732120816350707634351669869625020969023162859350071874190579161241536897514808261904847946571736601005892476655445840838334790544144817684255327207315586349347605137419779525190365032198020108764738368682531025183377533908861426184800374008082238104076468878471647552945326947661700424461063311238021134588694532200116564076327023074292426051582811070387018345324567635625951430032037432740780879056283663406965030844225855967039271869461158513793386475699748568670079823960604393478850861649260304945061743412365828352144806726676841807083754862211408236579802961200027441324438432402331257403545019352428776430880232850855886089962774458164680857875115807014743763867976955049991643998284357290415378143438847303484261903388841494031366139854257635577105335580206622185577060082551288893332226436281984838613239570676191409638533832374343758830859233722284644287996245605476932428998432652677378373173288063210753211238680604674708428051166488709084770291208161104912555598322366244868556651402684641209694982590565519216188104341226838996283071654868525536914850299539675503954938371853405900096187489473992880432496373165753803673586710175783994818471798498246948060532081996066183434012476096639519778021441199752546704080608499344178256285092726523709898651539462193004607364507926212975917698293892367015170992091531567814439791248475706237804600009918293321306880570046591458387208088016887445835557926258465124763087148566313528934166117490617526671492672176128330845273936469244582892571388877839056300482483799839692029222215486145902373478222682521639957440801727144146179559226175083889020074169926238300282286249284182671243405751424188569994272331606998712986882771820617214453142574944015066139463169197629181506579745526236191224848063890033669074365989226349564114665503062965960199720636202603521917776740668777463549375318899587866282125469797102065747232721372918144666659421872003474508942830911535189271114287108376159222380276605327823351661555149369375778466670145717971901227117812780450240026384758788339396817962950690798817121690686929538248529830023476068454114178139110648560236549754227497231007615131870024053910510913817843721791422528587432098524957878034683703337818421444017138688124249984418618129271198533315382567321870421530631197748535214670955334626336610864667332292409879849256691109516143618601548909740241913509623043612196128165950518666022030715613684732364660868905014263913906515063908199378852318365059897299125404479443425166774299659811849233151555272883274028352688442408752811283289980625912673699546247341543333500147231430612750390307397135252069338173843322950701049061867539433130784798015655130384758155685236218010419650255596181934986315913233036096461905990236112681196023441843363334594927631946101716652913823717182394299216272538461776065694542297877071383198817036964588689811863210976900355735884624464835706291453052757101278872027965364479724025405448132748391794128826423835171949197209797145936887537198729130831738033911016128547415377377715951728084111627597186384924222802373441925469991983672192131287035585307966942713416391033882754318613643490100943197409047331014476299861725424423355612237435715825933382804986243892498222780715951762757847109475119033482241412025182688713728193104253478196128440176479531505057110722974314569915223451643121848657575786528197564843508958384722923534559464521215831657751471298708225909292655638836651120681943836904116252668710044560243704200663709001941185557160472044643696932850060046928140507119069261393993902735534545567470314903886022024639948260501762431969305640666366626090207048887438898907498152865444381862917382901051820869936382661868303915273264581286782806601337500096593364625146091723180312930347877421234679118454791311109897794648216922505629399956793483801699157439700537542134485874586856047286751065423341893839099110586465595113646061055156838541217459801807133163612573079611168343863767667307354583494789788316330129240800836356825939157113130978030516441716682518346573675934198084958947940983292500086389778563494693212473426103062713745077286156922596628573857905533240641849018451328284632709269753830867308409142247659474439973348130810986399417379789657010687026734161967196591599588537834822988270125605842365589539690306474965584147981310997157542043256395776070485100881578291408250777738559790129129407309462785944505859412273194812753225152324801503466519048228961406646890305102510916237770448486230229488966711380555607956620732449373374027836767300203011615227008921843515652121379215748206859356920790214502277133099987729459596952817044582181956080965811702798062669891205061560742325686842271306295009864421853470810407128917646906550836129916694778023822502789667843489199409657361704586786242554006942516693979292624714524945408858422726153755260071904336329196375777502176005195800693847635789586878489536872122898557806826518192703632099480155874455575175312736471421295536494084385586615208012115079075068553344489258693283859653013272046970694571546959353658571788894862333292465202735853188533370948455403336565356988172582528918056635488363743793348411845580168331827676834646291995605513470039147876808640322629616641560667508153710646723108461964247537490553744805318226002710216400980584497526023035640038083472053149941172965736785066421400842696497103241919182121213206939769143923368374709228267738708132236680086924703491586840991153098315412063566123187504305467536983230827966457417620806593177265685841681837966106144963432544111706941700222657817358351259821080769101961052229263879745049019254311900620561906577452416191913187533984049343976823310298465893318373015809592522829206820862230332585280119266496314441316442773003237792274712330696417149945532261035475145631290668854345426869788447742981777493710117614651624183616680254815296335308490849943006763654806102940094693750609845588558043970485914449584445079978497045583550685408745163316464118083123079704389849190506587586425810738422420591191941674182490452700288263983057950057341711487031187142834184499153456702915280104485145176055306971441761368582384102787659324662689978418319620312262421177391477208004883578333569204533935953254564897028558589735505751235129536540502842081022785248776603574246366673148680279486052445782673626230852978265057114624846595914210278122788941448163994973881884622768244851622051817076722169863265701654316919742651230041757329904473537672536845792754365412826553581858046840069367718605020070547247548400805530424951854495267247261347318174742180078574693465447136036975884118029408039616746946288540679172138601225419503819704538417268006398820656328792839582708510919958839448297775647152026132871089526163417707151642899487953564854553553148754978134009964854498635824847690590033116961303766127923464323129706628411307427046202032013368350385425360313636763575212604707425311209233402837482949453104727418969287275572027615272268283376741393425652653283068469997597097750005560889932685025049212884068274139881631540456490350775871680074055685724021758685439053228133770707415830756269628316955687424060527726485853050611356384851965918968649596335568216975437621430778665934730450164822432964891270709898076676625671517269062058815549666382573829274182082278960684488222983394816670984039024283514306813767253460126007269262969468672750794346190439996618979611928750519442356402644303271737341591281496056168353988188569484045342311424613559925272330064881627466723523751234311893442118885085079358163848994487544756331689213869675574302737953785262542329024881047181939037220666894702204258836895840939998453560948869946833852579675161882159410981624918741813364726965123980677561947912557957446471427868624053750576104204267149366084980238274680575982591331006919941904651906531171908926077949119217946407355129633864523035673345588033313197080365457184791550432654899559705862888286866606618021882248602144999973122164138170653480175510438406624412822803616648904257377640956326482825258407669045608439490325290526337532316509087681336614242398309530806549661879381949120033919489494065132398816642080088395554942237096734840072642705701165089075196155370186264797456381187856175457113400473810762763014953309735174180655479112660938034311378532532883533352024934365979129341284854970946826329075830193072665337782559314331110963848053940859283988907796210479847919686876539987477095912788727475874439806779824968278272200926449944559380414608770641941810440758269805688038949654616587983904660587645341810289907194293021774519976104495043196841503455514044820928933378657363052830619990077748726922998608279053171691876578860908941817057993404890218441559791092676862796597583952483926734883634745651687016166240642424241228961118010615682342539392180052483454723779219911228595914191877491793823340010078128326506710281781396029120914720100947878752551263372884222353869490067927664511634758101193875319657242121476038284774774571704578610417385747911301908583877890152334343013005282797038580359815182929600305682612091950943737325454171056383887047528950563961029843641360935641632589408137981511693338619797339821670761004607980096016024823096943043806956620123213650140549586250615282588033022908385812478469315720323233601899469437647726721879376826431828382603564520699468630216048874528424363593558622333506235945002890558581611275341783750455936126130852640828051213873177490200249552738734585956405160830583053770732533971552620444705429573538361113677523169972740292941674204423248113875075631319078272188864053374694213842169928862940479635305150560788126366206497231257579019598873041195626227343728900516561111094111745277965482790471250581999077498063821559376885546498822938985408291325129076478386322494781016753491693489288104203015610283386143827378160946341335383578340765314321417150655877547820252454780657301342277470616744241968952613164274104695474621483756288299771804186785084546965619150908695874251184435837306590951460980451247409411373899927822492983367796011015387096129749705566301637307202750734759922943792393824427421186158236161317886392553095117188421298508307238259729144142251579403883011359083331651858234967221259621812507058113759495525022747274674369887131926670769299199084467161228738858457584622726573330753735572823951616964175198675012681745429323738294143824814377139861906716657572945807804820559511881687188075212971832636442155336787751274766940790117057509819575084563565217389544179875074523854455200133572033332379895074393905312918212255259833790909463630202185353848854825062897715616963860712382771725621313460549401770413581731931763370136332252819127547191443450920711848838366818174263342949611870091503049165339464763717766439120798347494627397822171502090670190302469762151278521956142070806461631373236517853976292092025500288962012970141379640038055734949269073535145961208674796547733692958773628635660143767964038430796864138563447801328261284589184898528048048844180821639423974014362903481665458114454366460032490618763039502356402044530748210241366895196644221339200757479128683805175150634662569391937740283512075666260829890491877287833852178522792045771846965855278790447562192663992008409302075673925363735628390829817577902153202106409617373283598494066652141198183810884515459772895164572131897797907491941013148368544639616904607030107596818933741217575988165127000761262789169510406315857637534787420070222051070891257612361658026806815858499852631465878086616800733264676830206391697203064894405628195406190685242003053463156621891327309069687353181641094514288036605995220248248886711554429104721929134248346438705368508648749099178812670565665387191049721820042371492740164460943459845392536706132210616533085662021188968234005752675486101476993688738209584552211571923479686888160853631615862880150395949418529489227074410828207169303387818084936204018255222271010985653444817207470756019245915599431072949578197878590578940052540122867517142511184356437184053563024181225473266093302710397968091064939272722683035410467632591355279683837705019855234621222858410557119921731717969804339317707750755627056047831779844447637560254637033369247114220815519973691371975163241302748712199863404548248524570118553342675264715978310731245663429805221455494156252724028915333354349341217862037007260315279870771872491234494477147909520734761385425485311552773301030342476835865496093722324007154518129732692081058424090557725645803681462234493189708138897143299831347617799679712453782310703739151473878692119187566700319321281896803322696594459286210607438827416919465162267632540665070881071030394178860564893769816734159025925194611823642945652669372203155504700213598846292758012527715422016629954863130324912311029627923723899766416803497141226527931907636326136814145516376656559839788489381733082668779901962886932296597379951931621187215455287394170243669885593888793316744533363119541518404088283815193421234122820030950313341050704760159987985472529190665222479319715440331794836837373220821885773341623856441380700541913530245943913502554531886454796252260251762928374330465102361057583514550739443339610216229675461415781127197001738611494279501411253280621254775810512972088465263158094806633687670147310733540717710876615935856814098212967730759197382973441445256688770855324570888958320993823432102718224114763732791357568615421252849657903335093152776925505845644010552192644505312073756287744998163646332835816140330175813967359427327690448920361880386754955751806890058532927201493923500525845146706982628548257883267398735220457228239290207144822219885587102896991935873074277815159757620764023951243860202032596596250212578349957710085626386118233813318509014686577064010676278617583772772895892746039403930337271873850536912957126715066896688493880885142943609962012966759079225082275313812849851526902931700263136328942095797577959327635531162066753488651317323872438748063513314512644889967589828812925480076425186586490241111127301357197181381602583178506932244007998656635371544088454866393181708395735780799059730839094881804060935959190907473960904410150516321749681412100765719177483767355751000733616922386537429079457803200042337452807566153042929014495780629634138383551783599764708851349004856973697965238695845994595592090709058956891451141412684505462117945026611750166928260250950770778211950432617383223562437601776799362796099368975191394965033358507155418436456852616674243688920371037495328425927131610537834980740739158633817967658425258036737206469351248652238481341663808061505704829059890696451936440018597120425723007316410009916987524260377362177763430621616744884930810929901009517974541564251204822086714586849255132444266777127863728211331536224301091824391243380214046242223349153559516890816288487989988273630445372432174280215755777967021666317047969728172483392841015642274507271779269399929740308072770395013581545142494049026536105825409373114653104943382484379718606937214444600826798002471229489405761853892203425608302697052876621377373594394224114707074072902725461307358541745691419446487624357682397065703184168467540733466346293673983620004041400714054277632480132742202685393698869787607009590048684650626771363070979821006557285101306601010780633743344773073478653881742681230743766066643312775356466578603715192922768440458273283243808212841218776132042460464900801054731426749260826922155637405486241717031027919996942645620955619816454547662045022411449404749349832206807191352767986747813458203859570413466177937228534940031631599544093684089572533438702986717829770373332806801764639502090023941931499115009105276821119510999063166150311585582835582607179410052528583611369961303442790173811787412061288182062023263849861515656451230047792967563618345768105043341769543067538041113928553792529241347339481050532025708728186307291158911335942014761872664291564036371927602306283840650425441742335464549987055318726887926424102147363698625463747159744354943443899730051742525110877357886390946812096673428152585919924857640488055071329814299359911463239919113959926752576359007446572810191805841807342227734721397723218231771716916400108826112549093361186780575722391018186168549108500885272274374212086524852372456248697662245384819298671129452945515497030585919307198497105414181636968976131126744027009648667545934567059936995464500558921628047976365686133316563907395703272034389175415267500915011198856872708848195531676931681272892143031376818016445477367518353497857924276463354162433601125960252109501612264110346083465648235597934274056868849224458745493776752120324703803035491157544831295275891939893680876327685438769557694881422844311998595700727521393176837831770339130423060958999137314684569010422095161967070506420256733873446115655276175992727151877660010238944760539789516945708802728736225121076224091810066700883474737605156285533943565843756271241244457651663064085939507947550920463932245202535463634444791755661725962187199279186575490857852950012840229035061514937310107009446151011613712423761426722541732055959202782129325725947146417224977321316381845326555279604270541871496236585252458648933254145062642337885651464670604298564781968461593663288954299780722542264790400616019751975007460545150060291806638271497016110987951336633771378434416194053121445291855180136575558667615019373029691932076120009255065081583275508499340768797252369987023567931026804136745718956641431852679054717169962990363015545645090044802789055701968328313630718997699153166679208958768572290600915472919636381673596673959975710326015571920237348580521128117458610065152598883843114511894880552129145775699146577530041384717124577965048175856395072895337539755822087777506072339445587895905719156735) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected new file mode 100644 index 00000000..ef373193 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 96871400 +| mem: 801}) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc.expected new file mode 100644 index 00000000..d55150f0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc.expected @@ -0,0 +1,7 @@ +(program + 1.0.0 + (con + bytestring + #ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/negative-input/negative-input.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/negative-input/negative-input.uplc new file mode 100644 index 00000000..b6e3d0c6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/negative-input/negative-input.uplc @@ -0,0 +1,5 @@ +-- Negative inputs cause an error. +(program 1.0.0 + [(builtin integerToByteString) (con bool False) (con integer 0) (con integer -5)] +) + \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/negative-input/negative-input.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/negative-input/negative-input.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/negative-input/negative-input.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/negative-input/negative-input.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/negative-input/negative-input.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/negative-input/negative-input.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc new file mode 100644 index 00000000..3e442a90 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc @@ -0,0 +1,4 @@ +-- Zero should encode to the empty bytestring. +(program 1.0.0 + [(builtin integerToByteString) (con bool False) (con integer 0) (con integer 0)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc.budget.expected new file mode 100644 index 00000000..0bc43be7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1434707 +| mem: 801}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc.expected new file mode 100644 index 00000000..cac0a333 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bytestring #)) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc new file mode 100644 index 00000000..d25d0276 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc @@ -0,0 +1,17 @@ +-- Test vector (0-bit input) from ShortMsgKAT_256.txt in +-- https://keccak.team/obsolete/KeccakKAT-3.zip. The Keccak function we're +-- testing here is the version used by Ethereum, which was the Keccak submission +-- in round 3 of the SHA-3 competition. The final SHA-3 hash function is a +-- modified version of that. +(program 1.0.0 + [ + [ + (builtin equalsByteString) + [ + (builtin keccak_256) + (con bytestring #) + ] + ] + (con bytestring #C5D2460186F7233C927E7DB2DCC703C0E500B653CA82273B7BFAD8045D85A470) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc.budget.expected new file mode 100644 index 00000000..0431f3fe --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 2467639 +| mem: 805}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc new file mode 100644 index 00000000..26964838 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc @@ -0,0 +1,17 @@ +-- Test vector (200-bit input) from ShortMsgKAT_256.txt in +-- https://keccak.team/obsolete/KeccakKAT-3.zip. The Keccak function we're +-- testing here is the version used by Ethereum, which was the Keccak submission +-- in round 3 of the SHA-3 competition. The final SHA-3 hash function is a +-- modified version of that. +(program 1.0.0 + [ + [ + (builtin equalsByteString) + [ + (builtin keccak_256) + (con bytestring #AAFDC9243D3D4A096558A360CC27C8D862F0BE73DB5E88AA55) + ] + ] + (con bytestring #6FFFA070B865BE3EE766DC2DB49B6AA55C369F7DE3703ADA2612D754145C01E6) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc.budget.expected new file mode 100644 index 00000000..4a6c2b53 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 2661352 +| mem: 805}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc new file mode 100644 index 00000000..99fdcd2c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc @@ -0,0 +1 @@ +(program 0.0.0 [ (builtin lengthOfByteString) (con bytestring #00ffaa) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc.budget.expected new file mode 100644 index 00000000..56d04b0b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 70200 +| mem: 410}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc.expected new file mode 100644 index 00000000..3dc51c5f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con integer 3)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc new file mode 100644 index 00000000..f545f3da --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc @@ -0,0 +1 @@ +(program 0.0.0 [ [(builtin lessThanByteString) (con bytestring #00ff)] (con bytestring #00ffaa) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc.budget.expected new file mode 100644 index 00000000..7b79a6eb --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 109173 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc new file mode 100644 index 00000000..0b5a044e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin equalsByteString) (con bytestring #54686543616B654973414C6965) (con bytestring #54686543616B654973414C6965)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc.budget.expected new file mode 100644 index 00000000..4822eaf1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 109674 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc new file mode 100644 index 00000000..3f7173b5 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin lessThanByteString) (con bytestring #54686543616B654973414C6965) (con bytestring #54686543616B65497341506965)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc.budget.expected new file mode 100644 index 00000000..054025fc --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 109247 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc new file mode 100644 index 00000000..8aa6ebc8 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin lessThanByteString) (con bytestring #54686543616B65497341506965) (con bytestring #54686543616B654973414C6965)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc.budget.expected new file mode 100644 index 00000000..054025fc --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 109247 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc.expected new file mode 100644 index 00000000..3ee9f07f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc new file mode 100644 index 00000000..3b70df6b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin lessThanByteString) (con bytestring #54686543616B65497341506965) (con bytestring #54686543616B654973414C69)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc.budget.expected new file mode 100644 index 00000000..054025fc --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 109247 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc.expected new file mode 100644 index 00000000..3ee9f07f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc new file mode 100644 index 00000000..320c18ec --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin lessThanByteString) (con bytestring #54686543616B654973414C69) (con bytestring #54686543616B65497341506965)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc.budget.expected new file mode 100644 index 00000000..054025fc --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 109247 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc new file mode 100644 index 00000000..e8ae65a4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc @@ -0,0 +1 @@ +(program 0.0.0 [ [(builtin lessThanEqualsByteString) (con bytestring #00ff)] (con bytestring #00) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc.budget.expected new file mode 100644 index 00000000..7b79a6eb --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 109173 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc.expected new file mode 100644 index 00000000..dd87da54 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc new file mode 100644 index 00000000..8bbb8ce1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin lessThanEqualsByteString) (con bytestring #54686543616B654973414C6964) (con bytestring #54686543616B654973414C6965)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc.budget.expected new file mode 100644 index 00000000..054025fc --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 109247 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc new file mode 100644 index 00000000..d79b6dc3 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin lessThanEqualsByteString) (con bytestring #54686543616B654973414C6966) (con bytestring #54686543616B654973414C6965)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc.budget.expected new file mode 100644 index 00000000..054025fc --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 109247 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc.expected new file mode 100644 index 00000000..3ee9f07f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc new file mode 100644 index 00000000..a8106432 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin lessThanEqualsByteString) (con bytestring #54686543616B654973414C6965) (con bytestring #54686543616B654973414C6965)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc.budget.expected new file mode 100644 index 00000000..054025fc --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 109247 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc new file mode 100644 index 00000000..80100652 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin lessThanEqualsInteger) (con integer 1) ] (con integer 2) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc.budget.expected new file mode 100644 index 00000000..ea3cb9ba --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 123937 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc new file mode 100644 index 00000000..38df5f47 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin lessThanEqualsInteger) (con integer 8) (con integer 4)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc.budget.expected new file mode 100644 index 00000000..ea3cb9ba --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 123937 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc.expected new file mode 100644 index 00000000..3ee9f07f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc new file mode 100644 index 00000000..e78fc205 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin lessThanEqualsInteger) (con integer 4) (con integer 8)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc.budget.expected new file mode 100644 index 00000000..ea3cb9ba --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 123937 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc new file mode 100644 index 00000000..0e32e721 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin lessThanEqualsInteger) (con integer 4) (con integer 4)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc.budget.expected new file mode 100644 index 00000000..ea3cb9ba --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 123937 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc new file mode 100644 index 00000000..7e279e81 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin lessThanEqualsInteger) (con integer 3477349701412809834789938452452684373578934257) (con integer 3477349701412809834789938452452684373578934257)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc.budget.expected new file mode 100644 index 00000000..c766e0ca --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 125041 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc new file mode 100644 index 00000000..da9a4a8c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin lessThanInteger) (con integer 1) ] (con integer 2) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc.budget.expected new file mode 100644 index 00000000..4de75a09 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 125390 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc new file mode 100644 index 00000000..56aee385 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin lessThanInteger) (con integer 8) (con integer 4)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc.budget.expected new file mode 100644 index 00000000..4de75a09 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 125390 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc.expected new file mode 100644 index 00000000..3ee9f07f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc new file mode 100644 index 00000000..9811d79f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin lessThanInteger) (con integer 4) (con integer 8)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc.budget.expected new file mode 100644 index 00000000..4de75a09 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 125390 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc new file mode 100644 index 00000000..241cd924 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin lessThanInteger) (con integer 4) (con integer 4)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc.budget.expected new file mode 100644 index 00000000..4de75a09 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 125390 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc.expected new file mode 100644 index 00000000..3ee9f07f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc new file mode 100644 index 00000000..37bf59ef --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin lessThanInteger) (con integer 3477349701412809834789938452452684373578934257) (con integer 3477349701412809834789938452452684373578934257)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc.budget.expected new file mode 100644 index 00000000..7d82843a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 126472 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc.expected new file mode 100644 index 00000000..3ee9f07f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/listData/listData.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/listData/listData.uplc new file mode 100644 index 00000000..77c18fba --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/listData/listData.uplc @@ -0,0 +1 @@ +(program 0.0.0 [(builtin listData) (con list(data) [{ Integer 0 }])] ) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/listData/listData.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/listData/listData.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/listData/listData.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/listData/listData.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/listData/listData.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/listData/listData.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/listOfList/listOfList.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/listOfList/listOfList.uplc new file mode 100644 index 00000000..479fd61f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/listOfList/listOfList.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con list(list(integer)) [ [0], [0, 1, 2], [4, 5, 2] ])) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/listOfList/listOfList.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/listOfList/listOfList.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/listOfList/listOfList.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/listOfList/listOfList.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/listOfList/listOfList.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/listOfList/listOfList.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/listOfPair/listOfPair.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/listOfPair/listOfPair.uplc new file mode 100644 index 00000000..0c60b403 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/listOfPair/listOfPair.uplc @@ -0,0 +1 @@ +(program 0.0.0 (con list(pair (integer) (bool)) [(1, True), (500000, False), (0, True)])) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/listOfPair/listOfPair.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/listOfPair/listOfPair.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/listOfPair/listOfPair.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/listOfPair/listOfPair.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/listOfPair/listOfPair.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/listOfPair/listOfPair.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mapData/mapData.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/mapData/mapData.uplc new file mode 100644 index 00000000..c356a7a8 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mapData/mapData.uplc @@ -0,0 +1,3 @@ +(program 0.0.0 [(builtin mapData) + (con list(pair (data) (data)) + [({ Integer 0 }, {Integer 1})])]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mapData/mapData.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/mapData/mapData.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mapData/mapData.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mapData/mapData.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/mapData/mapData.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mapData/mapData.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/divideInteger/divideInteger.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/divideInteger/divideInteger.uplc new file mode 100644 index 00000000..7d470cd0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/divideInteger/divideInteger.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin divideInteger) (con integer 1) (con integer 0)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/divideInteger/divideInteger.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/divideInteger/divideInteger.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/divideInteger/divideInteger.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/divideInteger/divideInteger.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/divideInteger/divideInteger.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/divideInteger/divideInteger.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons-fail/mkCons-fail.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons-fail/mkCons-fail.uplc new file mode 100644 index 00000000..ccedfda6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons-fail/mkCons-fail.uplc @@ -0,0 +1,4 @@ +-- a type mismatch +-- plutus implementation detail: note that this conceptually should be a machine type mismatch error (unlifting error), +-- but is currently a user evaluation failure, see: https://github.com/IntersectMBO/plutus/pull/3035 +(program 1.0.0 [(force (builtin mkCons)) (con integer 3) [(builtin mkNilData) (con unit ())]]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons-fail/mkCons-fail.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons-fail/mkCons-fail.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons-fail/mkCons-fail.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons-fail/mkCons-fail.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons-fail/mkCons-fail.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons-fail/mkCons-fail.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons1/mkCons1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons1/mkCons1.uplc new file mode 100644 index 00000000..1c8bc68a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons1/mkCons1.uplc @@ -0,0 +1 @@ +(program 0.0.0 [[(force (builtin mkCons)) (con integer 0)] (con (list integer) [ ])]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons1/mkCons1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons1/mkCons1.uplc.budget.expected new file mode 100644 index 00000000..105c994c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons1/mkCons1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 168462 +| mem: 732}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons1/mkCons1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons1/mkCons1.uplc.expected new file mode 100644 index 00000000..690f3569 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons1/mkCons1.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con (list integer) [0])) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons2/mkCons2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons2/mkCons2.uplc new file mode 100644 index 00000000..88892f6a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons2/mkCons2.uplc @@ -0,0 +1 @@ +(program 0.0.0 [[(force (builtin mkCons)) (con integer 0)] (con (list integer) [ 1, 2 ])]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons2/mkCons2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons2/mkCons2.uplc.budget.expected new file mode 100644 index 00000000..105c994c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons2/mkCons2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 168462 +| mem: 732}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons2/mkCons2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons2/mkCons2.uplc.expected new file mode 100644 index 00000000..646ab883 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkCons/mkCons2/mkCons2.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con (list integer) [0,1,2])) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mkNilData/mkNilData.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkNilData/mkNilData.uplc new file mode 100644 index 00000000..7530c6b8 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkNilData/mkNilData.uplc @@ -0,0 +1 @@ +(program 0.0.0 [(builtin mkNilData) (con unit ())]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mkNilData/mkNilData.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkNilData/mkNilData.uplc.budget.expected new file mode 100644 index 00000000..7c099695 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkNilData/mkNilData.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 55343 +| mem: 432}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mkNilData/mkNilData.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkNilData/mkNilData.uplc.expected new file mode 100644 index 00000000..0e8a94f6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkNilData/mkNilData.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con (list data) [])) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mkNilPairData/mkNilPairData.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkNilPairData/mkNilPairData.uplc new file mode 100644 index 00000000..8c4887cf --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkNilPairData/mkNilPairData.uplc @@ -0,0 +1 @@ +(program 0.0.0 [(builtin mkNilPairData) (con unit ())]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mkNilPairData/mkNilPairData.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkNilPairData/mkNilPairData.uplc.budget.expected new file mode 100644 index 00000000..bb34b2ba --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkNilPairData/mkNilPairData.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 55491 +| mem: 432}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mkNilPairData/mkNilPairData.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkNilPairData/mkNilPairData.uplc.expected new file mode 100644 index 00000000..f5d5ad75 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkNilPairData/mkNilPairData.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con (list (pair data data)) [])) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mkPairData/mkPairData.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkPairData/mkPairData.uplc new file mode 100644 index 00000000..d83ef98c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkPairData/mkPairData.uplc @@ -0,0 +1,3 @@ +(program 0.0.0 [[(builtin mkPairData) + (con data { List [ Integer 0, Integer 1 ] })] + (con data { Constr 1 [ Integer 3 ] })]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mkPairData/mkPairData.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkPairData/mkPairData.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkPairData/mkPairData.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/mkPairData/mkPairData.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkPairData/mkPairData.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/mkPairData/mkPairData.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc new file mode 100644 index 00000000..556d9bba --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin modInteger) (con integer -503) (con integer -1777777777)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc.budget.expected new file mode 100644 index 00000000..f432423f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 212030 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc.expected new file mode 100644 index 00000000..50009a04 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer -503)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc new file mode 100644 index 00000000..16693aa3 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin modInteger) (con integer -503) (con integer 1777777777)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc.budget.expected new file mode 100644 index 00000000..f432423f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 212030 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc.expected new file mode 100644 index 00000000..ed7d62be --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 1777777274)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc new file mode 100644 index 00000000..fa5b7ed7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin modInteger) (con integer 503) (con integer -1777777777)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc.budget.expected new file mode 100644 index 00000000..f432423f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 212030 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc.expected new file mode 100644 index 00000000..6679bca3 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer -1777777274)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc new file mode 100644 index 00000000..8a93ecd9 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin modInteger) (con integer 503) (con integer 1777777777)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc.budget.expected new file mode 100644 index 00000000..f432423f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 212030 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc.expected new file mode 100644 index 00000000..2cb4ba16 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 503)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-zero/modInteger-zero.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-zero/modInteger-zero.uplc new file mode 100644 index 00000000..d5cdd5db --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-zero/modInteger-zero.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin modInteger) (con integer 1) (con integer 0)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-zero/modInteger-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-zero/modInteger-zero.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-zero/modInteger-zero.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-zero/modInteger-zero.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-zero/modInteger-zero.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger-zero/modInteger-zero.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger1/modInteger1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger1/modInteger1.uplc new file mode 100644 index 00000000..02bf787d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger1/modInteger1.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin modInteger) (con integer 2) ] (con integer 3) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger1/modInteger1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger1/modInteger1.uplc.budget.expected new file mode 100644 index 00000000..f432423f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger1/modInteger1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 212030 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger1/modInteger1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger1/modInteger1.uplc.expected new file mode 100644 index 00000000..00abe6f7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/modInteger/modInteger1/modInteger1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 2)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc new file mode 100644 index 00000000..b95eb85d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin multiplyInteger) (con integer 1) ] (con integer 1) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc.budget.expected new file mode 100644 index 00000000..d02d7b21 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 171053 +| mem: 602}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc.expected new file mode 100644 index 00000000..8e9a3b22 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 1)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc new file mode 100644 index 00000000..7bfef64b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin multiplyInteger) (con integer 793479793478939166266268485555555) ] (con integer 0) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc.budget.expected new file mode 100644 index 00000000..32f432fd --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 171572 +| mem: 603}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc.expected new file mode 100644 index 00000000..87e0223f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 0)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc new file mode 100644 index 00000000..53b0e061 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin multiplyInteger) (con integer 793479793478939) ] (con integer 166266268485555555) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc.budget.expected new file mode 100644 index 00000000..d02d7b21 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 171053 +| mem: 602}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc.expected new file mode 100644 index 00000000..b6b6b0b0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 131928924380432445633603606956145)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc new file mode 100644 index 00000000..c7be4f5e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin multiplyInteger) (con integer 793479793478939) ] (con integer -166266268485555555) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc.budget.expected new file mode 100644 index 00000000..d02d7b21 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 171053 +| mem: 602}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc.expected new file mode 100644 index 00000000..ce23b66e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer -131928924380432445633603606956145)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc new file mode 100644 index 00000000..0f29a07e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin multiplyInteger) (con integer -793479793478939) ] (con integer 166266268485555555) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc.budget.expected new file mode 100644 index 00000000..d02d7b21 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 171053 +| mem: 602}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc.expected new file mode 100644 index 00000000..ce23b66e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer -131928924380432445633603606956145)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc new file mode 100644 index 00000000..2a8153be --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin multiplyInteger) (con integer -793479793478939) ] (con integer -166266268485555555) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc.budget.expected new file mode 100644 index 00000000..d02d7b21 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 171053 +| mem: 602}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc.expected new file mode 100644 index 00000000..b6b6b0b0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 131928924380432445633603606956145)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/nullList/nullList.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/nullList/nullList.uplc new file mode 100644 index 00000000..4bee0ed8 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/nullList/nullList.uplc @@ -0,0 +1 @@ +(program 0.0.0 [(force (builtin nullList)) (con (list integer) [ 1, 2, 3 ])]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/nullList/nullList.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/nullList/nullList.uplc.budget.expected new file mode 100644 index 00000000..58da4587 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/nullList/nullList.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 138533 +| mem: 532}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/nullList/nullList.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/nullList/nullList.uplc.expected new file mode 100644 index 00000000..dd87da54 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/nullList/nullList.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/nullList2/nullList2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/nullList2/nullList2.uplc new file mode 100644 index 00000000..be50b89c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/nullList2/nullList2.uplc @@ -0,0 +1 @@ +(program 0.0.0 [(force (builtin nullList)) (con (list integer) [ ])]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/nullList2/nullList2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/nullList2/nullList2.uplc.budget.expected new file mode 100644 index 00000000..58da4587 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/nullList2/nullList2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 138533 +| mem: 532}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/nullList2/nullList2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/nullList2/nullList2.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/nullList2/nullList2.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc new file mode 100644 index 00000000..773704e7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc @@ -0,0 +1,6 @@ +(program 0.0.0 + (con + (pair (pair bool bytestring) (list integer)) + ((True, #012345), [0, 1, 2]) + ) +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc.expected new file mode 100644 index 00000000..330f30b9 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc.expected @@ -0,0 +1,4 @@ +(program + 0.0.0 + (con (pair (pair bool bytestring) (list integer)) ((True, #012345), [0,1,2])) +) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc new file mode 100644 index 00000000..4310cc84 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin quotientInteger) (con integer -503783783785265728700234277) (con integer -1777777777)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc.budget.expected new file mode 100644 index 00000000..6949f2ea --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 214466 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc.expected new file mode 100644 index 00000000..8b788167 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 283378378503190012)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc new file mode 100644 index 00000000..fc14f186 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin quotientInteger) (con integer -503783783785265728700234277) (con integer 1777777777)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc.budget.expected new file mode 100644 index 00000000..6949f2ea --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 214466 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc.expected new file mode 100644 index 00000000..365002c9 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer -283378378503190012)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc new file mode 100644 index 00000000..5a9c16c2 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin quotientInteger) (con integer 503783783785265728700234277) (con integer -1777777777)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc.budget.expected new file mode 100644 index 00000000..6949f2ea --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 214466 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc.expected new file mode 100644 index 00000000..365002c9 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer -283378378503190012)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc new file mode 100644 index 00000000..0bd536ba --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin quotientInteger) (con integer 503783783785265728700234277) (con integer 1777777777)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc.budget.expected new file mode 100644 index 00000000..6949f2ea --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 214466 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc.expected new file mode 100644 index 00000000..8b788167 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 283378378503190012)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-zero/quotientInteger-zero.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-zero/quotientInteger-zero.uplc new file mode 100644 index 00000000..c9d09922 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-zero/quotientInteger-zero.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin quotientInteger) (con integer 1) (con integer 0)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-zero/quotientInteger-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-zero/quotientInteger-zero.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-zero/quotientInteger-zero.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-zero/quotientInteger-zero.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-zero/quotientInteger-zero.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger-zero/quotientInteger-zero.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc new file mode 100644 index 00000000..f3f28335 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin quotientInteger) (con integer 1) ] (con integer 2) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc.budget.expected new file mode 100644 index 00000000..f432423f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 212030 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc.expected new file mode 100644 index 00000000..87e0223f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 0)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc new file mode 100644 index 00000000..bca6865f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin remainderInteger) (con integer -503) (con integer -1777777777)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc.budget.expected new file mode 100644 index 00000000..f432423f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 212030 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc.expected new file mode 100644 index 00000000..50009a04 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer -503)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc new file mode 100644 index 00000000..afd4b042 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin remainderInteger) (con integer -503) (con integer 1777777777)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc.budget.expected new file mode 100644 index 00000000..f432423f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 212030 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc.expected new file mode 100644 index 00000000..50009a04 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer -503)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc new file mode 100644 index 00000000..01d4d0f5 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin remainderInteger) (con integer 503) (con integer -1777777777)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc.budget.expected new file mode 100644 index 00000000..f432423f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 212030 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc.expected new file mode 100644 index 00000000..2cb4ba16 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 503)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc new file mode 100644 index 00000000..082f0816 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin remainderInteger) (con integer 503) (con integer 1777777777)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc.budget.expected new file mode 100644 index 00000000..f432423f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 212030 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc.expected new file mode 100644 index 00000000..2cb4ba16 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 503)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-zero/remainderInteger-zero.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-zero/remainderInteger-zero.uplc new file mode 100644 index 00000000..5103a827 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-zero/remainderInteger-zero.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(builtin remainderInteger) (con integer 1) (con integer 0)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-zero/remainderInteger-zero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-zero/remainderInteger-zero.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-zero/remainderInteger-zero.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-zero/remainderInteger-zero.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-zero/remainderInteger-zero.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger-zero/remainderInteger-zero.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc new file mode 100644 index 00000000..d82d0d53 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin remainderInteger) (con integer 1) ] (con integer 2) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc.budget.expected new file mode 100644 index 00000000..f432423f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 212030 +| mem: 601}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc.expected new file mode 100644 index 00000000..8e9a3b22 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 1)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc new file mode 100644 index 00000000..0adfd953 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc @@ -0,0 +1,14 @@ +-- Test vector (0-bit input) from SHA256ShortMessage.rsp in +-- https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/shs/shabytetestvectors.zip +(program 1.0.0 + [ + [ + (builtin equalsByteString) + [ + (builtin sha2_256) + (con bytestring #) + ] + ] + (con bytestring #e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc.budget.expected new file mode 100644 index 00000000..764a05d3 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 434990 +| mem: 805}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc new file mode 100644 index 00000000..2960c8c5 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc @@ -0,0 +1,14 @@ +-- Test vector (200-bit input) from SHA256ShortMessage.rsp in +-- https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/shs/shabytetestvectors.zip +(program 1.0.0 + [ + [ + (builtin equalsByteString) + [ + (builtin sha2_256) + (con bytestring #2e7ea84da4bc4d7cfb463e3f2c8647057afff3fbececa1d200) + ] + ] + (con bytestring #76e3acbc718836f2df8ad2d0d2d76f0cfa5fea0986be918f10bcee730df441b9) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc.budget.expected new file mode 100644 index 00000000..a4f3e3e4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 502754 +| mem: 805}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc new file mode 100644 index 00000000..a13a9c1a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc @@ -0,0 +1,14 @@ +-- Test vector (0-bit input) from SHA3_256ShortMessage.rsp in +-- https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/sha3/sha-3bytetestvectors.zip +(program 1.0.0 + [ + [ + (builtin equalsByteString) + [ + (builtin sha3_256) + (con bytestring #) + ] + ] + (con bytestring #a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc.budget.expected new file mode 100644 index 00000000..8280d7d1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1663641 +| mem: 805}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc new file mode 100644 index 00000000..f0b2ae20 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc @@ -0,0 +1,14 @@ +-- Test vector (200-bit input) from SHA3_256ShortMessage.rsp in +-- https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/sha3/sha-3bytetestvectors.zip +(program 1.0.0 + [ + [ + (builtin equalsByteString) + [ + (builtin sha3_256) + (con bytestring #9b3fdf8d448680840d6284f2997d3af55ffd85f6f4b33d7f8d) + ] + ] + (con bytestring #25005d10e84ff97c74a589013be42fb37f68db64bdfc7626efc0dd628077493a) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc.budget.expected new file mode 100644 index 00000000..398bbe70 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1857339 +| mem: 805}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc new file mode 100644 index 00000000..f283831b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin sliceByteString) (con integer 3) (con integer 5) (con bytestring #54686543616B654973414C6965)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc.budget.expected new file mode 100644 index 00000000..4d0cc151 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 132569 +| mem: 804}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc.expected new file mode 100644 index 00000000..2523d94e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bytestring #43616b6549)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc new file mode 100644 index 00000000..2dfcd48d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin sliceByteString) (con integer -3) (con integer 5) (con bytestring #54686543616B654973414C6965)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc.budget.expected new file mode 100644 index 00000000..4d0cc151 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 132569 +| mem: 804}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc.expected new file mode 100644 index 00000000..31f7fd67 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bytestring #5468654361)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc new file mode 100644 index 00000000..004585d4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin sliceByteString) (con integer -3) (con integer 1234) (con bytestring #54686543616B654973414C6965)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc.budget.expected new file mode 100644 index 00000000..4d0cc151 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 132569 +| mem: 804}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc.expected new file mode 100644 index 00000000..fba0ee4a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bytestring #54686543616b654973414c6965)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc new file mode 100644 index 00000000..eaf02192 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin sliceByteString) (con integer 5) (con integer 3) (con bytestring #54686543616B654973414C6965)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc.budget.expected new file mode 100644 index 00000000..4d0cc151 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 132569 +| mem: 804}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc.expected new file mode 100644 index 00000000..07f93cab --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bytestring #6b6549)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc new file mode 100644 index 00000000..f72177c2 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(builtin sliceByteString) (con integer 123456789123456789) (con integer 123456789123456789) (con bytestring #54686543616B654973414C6965)] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc.budget.expected new file mode 100644 index 00000000..4d0cc151 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 132569 +| mem: 804}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc.expected new file mode 100644 index 00000000..5dbd4047 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bytestring #)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sndPairOfPairAndList/sndPairOfPairAndList.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/sndPairOfPairAndList/sndPairOfPairAndList.uplc new file mode 100644 index 00000000..bc22d321 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sndPairOfPairAndList/sndPairOfPairAndList.uplc @@ -0,0 +1,5 @@ +(program 0.0.0 + [(force (builtin sndPair)) + (con pair (bool) (bytestring) + (True, #012345))] +) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sndPairOfPairAndList/sndPairOfPairAndList.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/sndPairOfPairAndList/sndPairOfPairAndList.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sndPairOfPairAndList/sndPairOfPairAndList.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/sndPairOfPairAndList/sndPairOfPairAndList.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/sndPairOfPairAndList/sndPairOfPairAndList.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/sndPairOfPairAndList/sndPairOfPairAndList.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc new file mode 100644 index 00000000..b4b1d8af --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin subtractInteger) (con integer 1)] (con integer 2) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc.budget.expected new file mode 100644 index 00000000..b9fdce3d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 181308 +| mem: 602}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc.expected new file mode 100644 index 00000000..1cb56cff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer -1)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc new file mode 100644 index 00000000..8b3f8c63 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin subtractInteger) (con integer 1)] (con integer 1) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc.budget.expected new file mode 100644 index 00000000..b9fdce3d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 181308 +| mem: 602}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc.expected new file mode 100644 index 00000000..87e0223f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 0)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc new file mode 100644 index 00000000..3d598ee0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin subtractInteger) (con integer 123423)] (con integer -794378954789297841) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc.budget.expected new file mode 100644 index 00000000..b9fdce3d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 181308 +| mem: 602}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc.expected new file mode 100644 index 00000000..35f6c006 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 794378954789421264)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc new file mode 100644 index 00000000..d3d561fd --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin subtractInteger) (con integer 134782734132417234781342718231486243)] (con integer 23443231) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc.budget.expected new file mode 100644 index 00000000..18f2a4a0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 181728 +| mem: 603}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc.expected new file mode 100644 index 00000000..c41097cc --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 134782734132417234781342718208043012)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc new file mode 100644 index 00000000..45b0f5a0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ [ (builtin subtractInteger) (con integer 0)] (con integer -327893248793249782347891) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc.budget.expected new file mode 100644 index 00000000..18f2a4a0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 181728 +| mem: 603}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc.expected new file mode 100644 index 00000000..d026cd96 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 327893248793249782347891)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/tailList/tailList-partial/tailList-partial.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/tailList/tailList-partial/tailList-partial.uplc new file mode 100644 index 00000000..2a7afcb2 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/tailList/tailList-partial/tailList-partial.uplc @@ -0,0 +1,2 @@ +-- tail is partial like haskell's and blows up when given an empty list +(program 0.0.0 [(force (builtin tailList)) [(builtin mkNilData) (con unit ())]]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/tailList/tailList-partial/tailList-partial.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/tailList/tailList-partial/tailList-partial.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/tailList/tailList-partial/tailList-partial.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/tailList/tailList-partial/tailList-partial.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/tailList/tailList-partial/tailList-partial.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/tailList/tailList-partial/tailList-partial.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/tailList/tailList1/tailList1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/tailList/tailList1/tailList1.uplc new file mode 100644 index 00000000..229766be --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/tailList/tailList1/tailList1.uplc @@ -0,0 +1 @@ +(program 0.0.0 [(force (builtin tailList)) (con (list integer) [ ])]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/tailList/tailList1/tailList1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/tailList/tailList1/tailList1.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/tailList/tailList1/tailList1.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/tailList/tailList1/tailList1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/tailList/tailList1/tailList1.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/tailList/tailList1/tailList1.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/trace/trace.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/trace/trace.uplc new file mode 100644 index 00000000..26fa0750 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/trace/trace.uplc @@ -0,0 +1 @@ +(program 0.0.0 [[(force (builtin trace)) (con string "Ola")] (con integer 2)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/trace/trace.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/trace/trace.uplc.budget.expected new file mode 100644 index 00000000..9c66c433 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/trace/trace.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 155598 +| mem: 732}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/trace/trace.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/trace/trace.uplc.expected new file mode 100644 index 00000000..0408fe9b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/trace/trace.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con integer 2)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unBData/unBData-fail/unBData-fail.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/unBData/unBData-fail/unBData-fail.uplc new file mode 100644 index 00000000..b1e4dcb5 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unBData/unBData-fail/unBData-fail.uplc @@ -0,0 +1,2 @@ +-- TODO: rerun test when data concrete syntax is introduced +(program 0.0.0 [(builtin unBData) (con data { Integer 0 })]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unBData/unBData-fail/unBData-fail.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/unBData/unBData-fail/unBData-fail.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unBData/unBData-fail/unBData-fail.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unBData/unBData-fail/unBData-fail.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/unBData/unBData-fail/unBData-fail.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unBData/unBData-fail/unBData-fail.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unBData/unBData1/unBData1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/unBData/unBData1/unBData1.uplc new file mode 100644 index 00000000..60e8553c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unBData/unBData1/unBData1.uplc @@ -0,0 +1 @@ +(program 0.0.0 [(builtin unBData) (con data { ByteString #AF00 })]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unBData/unBData1/unBData1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/unBData/unBData1/unBData1.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unBData/unBData1/unBData1.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unBData/unBData1/unBData1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/unBData/unBData1/unBData1.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unBData/unBData1/unBData1.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unConstrData/unConstrData-fail/unConstrData-fail.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/unConstrData/unConstrData-fail/unConstrData-fail.uplc new file mode 100644 index 00000000..901e8708 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unConstrData/unConstrData-fail/unConstrData-fail.uplc @@ -0,0 +1,2 @@ +-- TODO: rerun test when data concrete syntax is introduced +(program 0.0.0 [(builtin unConstrData) (con data { ByteString #AF00 })]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unConstrData/unConstrData-fail/unConstrData-fail.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/unConstrData/unConstrData-fail/unConstrData-fail.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unConstrData/unConstrData-fail/unConstrData-fail.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unConstrData/unConstrData-fail/unConstrData-fail.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/unConstrData/unConstrData-fail/unConstrData-fail.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unConstrData/unConstrData-fail/unConstrData-fail.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unConstrData/unConstrData1/unConstrData1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/unConstrData/unConstrData1/unConstrData1.uplc new file mode 100644 index 00000000..163a6e3d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unConstrData/unConstrData1/unConstrData1.uplc @@ -0,0 +1 @@ +(program 0.0.0 [(builtin unConstrData) (con data { Constr 1 [ Integer 0 ] })]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unConstrData/unConstrData1/unConstrData1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/unConstrData/unConstrData1/unConstrData1.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unConstrData/unConstrData1/unConstrData1.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unConstrData/unConstrData1/unConstrData1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/unConstrData/unConstrData1/unConstrData1.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unConstrData/unConstrData1/unConstrData1.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unIData/unIData-fail/unIData-fail.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/unIData/unIData-fail/unIData-fail.uplc new file mode 100644 index 00000000..319e2127 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unIData/unIData-fail/unIData-fail.uplc @@ -0,0 +1,2 @@ +-- TODO: rerun test when data concrete syntax is introduced +(program 0.0.0 [(builtin unIData) (con data { ByteString #AF00 })]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unIData/unIData-fail/unIData-fail.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/unIData/unIData-fail/unIData-fail.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unIData/unIData-fail/unIData-fail.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unIData/unIData-fail/unIData-fail.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/unIData/unIData-fail/unIData-fail.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unIData/unIData-fail/unIData-fail.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unIData/unIData1/unIData1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/unIData/unIData1/unIData1.uplc new file mode 100644 index 00000000..8b779790 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unIData/unIData1/unIData1.uplc @@ -0,0 +1 @@ +(program 0.0.0 [(builtin unIData) (con data { Integer 0 })]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unIData/unIData1/unIData1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/unIData/unIData1/unIData1.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unIData/unIData1/unIData1.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unIData/unIData1/unIData1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/unIData/unIData1/unIData1.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unIData/unIData1/unIData1.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unListData/unListData-fail/unListData-fail.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/unListData/unListData-fail/unListData-fail.uplc new file mode 100644 index 00000000..7780dbb7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unListData/unListData-fail/unListData-fail.uplc @@ -0,0 +1,2 @@ +-- TODO: rerun test when data concrete syntax is introduced +(program 0.0.0 [(builtin unListData) (con data { ByteString #AF00 })]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unListData/unListData-fail/unListData-fail.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/unListData/unListData-fail/unListData-fail.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unListData/unListData-fail/unListData-fail.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unListData/unListData-fail/unListData-fail.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/unListData/unListData-fail/unListData-fail.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unListData/unListData-fail/unListData-fail.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unListData/unListData1/unListData1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/unListData/unListData1/unListData1.uplc new file mode 100644 index 00000000..462276b9 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unListData/unListData1/unListData1.uplc @@ -0,0 +1 @@ +(program 0.0.0 [(builtin unListData) (con data { List [ Integer 0, Integer 1 ] })]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unListData/unListData1/unListData1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/unListData/unListData1/unListData1.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unListData/unListData1/unListData1.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unListData/unListData1/unListData1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/unListData/unListData1/unListData1.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unListData/unListData1/unListData1.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unMapData/unMapData-fail/unMapData-fail.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/unMapData/unMapData-fail/unMapData-fail.uplc new file mode 100644 index 00000000..dbae58a3 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unMapData/unMapData-fail/unMapData-fail.uplc @@ -0,0 +1,2 @@ +-- TODO: rerun test when data concrete syntax is introduced +(program 0.0.0 [(builtin unMapData) (con data { ByteString #AF00 })]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unMapData/unMapData-fail/unMapData-fail.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/unMapData/unMapData-fail/unMapData-fail.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unMapData/unMapData-fail/unMapData-fail.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unMapData/unMapData-fail/unMapData-fail.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/unMapData/unMapData-fail/unMapData-fail.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unMapData/unMapData-fail/unMapData-fail.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unMapData/unMapData1/unMapData1.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/unMapData/unMapData1/unMapData1.uplc new file mode 100644 index 00000000..4bd19539 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unMapData/unMapData1/unMapData1.uplc @@ -0,0 +1 @@ +(program 0.0.0 [(builtin unMapData) (con data { Map [ (Integer 0, Integer 1) ] })]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unMapData/unMapData1/unMapData1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/unMapData/unMapData1/unMapData1.uplc.budget.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unMapData/unMapData1/unMapData1.uplc.budget.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/unMapData/unMapData1/unMapData1.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/unMapData/unMapData1/unMapData1.uplc.expected new file mode 100644 index 00000000..fd569489 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/unMapData/unMapData1/unMapData1.uplc.expected @@ -0,0 +1 @@ +parse error \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/invalid-key/invalid-key.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/invalid-key/invalid-key.uplc new file mode 100644 index 00000000..e6212408 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/invalid-key/invalid-key.uplc @@ -0,0 +1,7 @@ +-- the header of public key should be 02 or 03 +-- 04 is for uncompressed, we don't have uncompressed +-- other bits would also break, e.g. 01,05... +(program 0.0.0 [[[(builtin verifyEcdsaSecp256k1Signature) + (con bytestring #04e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f01)] + (con bytestring #e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f01)] + (con bytestring #b2fc46ad47af464478c199e1f8be169f1be6327c7f9a0a6689371ca94caf04064a01b22aff1520abd58951341603faed768cf78ce97ae7b038abfe456aa17c09)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/invalid-key/invalid-key.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/invalid-key/invalid-key.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/invalid-key/invalid-key.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/invalid-key/invalid-key.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/invalid-key/invalid-key.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/invalid-key/invalid-key.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-key/long-key.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-key/long-key.uplc new file mode 100644 index 00000000..13be5397 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-key/long-key.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEcdsaSecp256k1Signature) + (con bytestring #02e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f0101)] + (con bytestring #e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f01)] + (con bytestring #b2fc46ad47af464478c199e1f8be169f1be6327c7f9a0a6689371ca94caf04064a01b22aff1520abd58951341603faed768cf78ce97ae7b038abfe456aa17c09)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-key/long-key.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-key/long-key.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-key/long-key.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-key/long-key.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-key/long-key.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-key/long-key.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-msg/long-msg.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-msg/long-msg.uplc new file mode 100644 index 00000000..7222ddb5 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-msg/long-msg.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEcdsaSecp256k1Signature) + (con bytestring #02e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f01)] + (con bytestring #e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f0101)] + (con bytestring #b2fc46ad47af464478c199e1f8be169f1be6327c7f9a0a6689371ca94caf04064a01b22aff1520abd58951341603faed768cf78ce97ae7b038abfe456aa17c09)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-msg/long-msg.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-msg/long-msg.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-msg/long-msg.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-msg/long-msg.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-msg/long-msg.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-msg/long-msg.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-sig/long-sig.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-sig/long-sig.uplc new file mode 100644 index 00000000..8c14700b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-sig/long-sig.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEcdsaSecp256k1Signature) + (con bytestring #02e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f01)] + (con bytestring #e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f01)] + (con bytestring #b2fc46ad47af464478c199e1f8be169f1be6327c7f9a0a6689371ca94caf04064a01b22aff1520abd58951341603faed768cf78ce97ae7b038abfe456aa17c0909)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-sig/long-sig.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-sig/long-sig.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-sig/long-sig.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-sig/long-sig.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-sig/long-sig.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/long-sig/long-sig.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-key/short-key.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-key/short-key.uplc new file mode 100644 index 00000000..4e28ad50 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-key/short-key.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEcdsaSecp256k1Signature) + (con bytestring #02e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f)] + (con bytestring #e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f01)] + (con bytestring #b2fc46ad47af464478c199e1f8be169f1be6327c7f9a0a6689371ca94caf04064a01b22aff1520abd58951341603faed768cf78ce97ae7b038abfe456aa17c09)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-key/short-key.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-key/short-key.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-key/short-key.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-key/short-key.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-key/short-key.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-key/short-key.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-msg/short-msg.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-msg/short-msg.uplc new file mode 100644 index 00000000..e3527029 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-msg/short-msg.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEcdsaSecp256k1Signature) + (con bytestring #02e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f01)] + (con bytestring #e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f)] + (con bytestring #b2fc46ad47af464478c199e1f8be169f1be6327c7f9a0a6689371ca94caf04064a01b22aff1520abd58951341603faed768cf78ce97ae7b038abfe456aa17c09)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-msg/short-msg.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-msg/short-msg.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-msg/short-msg.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-msg/short-msg.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-msg/short-msg.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-msg/short-msg.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-sig/short-sig.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-sig/short-sig.uplc new file mode 100644 index 00000000..e5e83d27 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-sig/short-sig.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEcdsaSecp256k1Signature) + (con bytestring #02e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f01)] + (con bytestring #e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f01)] + (con bytestring #b2fc46ad47af464478c199e1f8be169f1be6327c7f9a0a6689371ca94caf04064a01b22aff1520abd58951341603faed768cf78ce97ae7b038abfe456aa17c)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-sig/short-sig.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-sig/short-sig.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-sig/short-sig.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-sig/short-sig.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-sig/short-sig.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEcdsaSecp256k1Signature/short-sig/short-sig.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/long-key/long-key.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/long-key/long-key.uplc new file mode 100644 index 00000000..5b1d6a83 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/long-key/long-key.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f0101)] + (con bytestring #18b6bec097)] + (con bytestring #b2fc46ad47af464478c199e1f8be169f1be6327c7f9a0a6689371ca94caf04064a01b22aff1520abd58951341603faed768cf78ce97ae7b038abfe456aa17c09)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/long-key/long-key.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/long-key/long-key.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/long-key/long-key.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/long-key/long-key.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/long-key/long-key.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/long-key/long-key.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/long-sig/long-sig.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/long-sig/long-sig.uplc new file mode 100644 index 00000000..dda7bd82 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/long-sig/long-sig.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f01)] + (con bytestring #18b6bec097)] + (con bytestring #b2fc46ad47af464478c199e1f8be169f1be6327c7f9a0a6689371ca94caf04064a01b22aff1520abd58951341603faed768cf78ce97ae7b038abfe456aa17c0909)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/long-sig/long-sig.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/long-sig/long-sig.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/long-sig/long-sig.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/long-sig/long-sig.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/long-sig/long-sig.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/long-sig/long-sig.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/short-key/short-key.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/short-key/short-key.uplc new file mode 100644 index 00000000..5a824790 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/short-key/short-key.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f)] + (con bytestring #18b6bec097)] + (con bytestring #b2fc46ad47af464478c199e1f8be169f1be6327c7f9a0a6689371ca94caf04064a01b22aff1520abd58951341603faed768cf78ce97ae7b038abfe456aa17c09)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/short-key/short-key.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/short-key/short-key.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/short-key/short-key.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/short-key/short-key.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/short-key/short-key.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/short-key/short-key.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/short-sig/short-sig.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/short-sig/short-sig.uplc new file mode 100644 index 00000000..26288c98 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/short-sig/short-sig.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f01)] + (con bytestring #18b6bec097)] + (con bytestring #b2fc46ad47af464478c199e1f8be169f1be6327c7f9a0a6689371ca94caf04064a01b22aff1520abd58951341603faed768cf78ce97ae7b038abfe456aa17c)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/short-sig/short-sig.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/short-sig/short-sig.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/short-sig/short-sig.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/short-sig/short-sig.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/short-sig/short-sig.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/short-sig/short-sig.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test01/test01.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test01/test01.uplc new file mode 100644 index 00000000..c29535a5 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test01/test01.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a)] + (con bytestring #)] + (con bytestring #e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test01/test01.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test01/test01.uplc.budget.expected new file mode 100644 index 00000000..37620dba --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test01/test01.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53510544 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test01/test01.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test01/test01.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test01/test01.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test02/test02.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test02/test02.uplc new file mode 100644 index 00000000..c1e435e2 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test02/test02.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #3d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c)] + (con bytestring #72)] + (con bytestring #92a009a9f0d4cab8720e820b5f642540a2b27b5416503f8fb3762223ebdb69da085ac1e43e15996e458f3613d0f11d8c387b2eaeb4302aeeb00d291612bb0c00)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test02/test02.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test02/test02.uplc.budget.expected new file mode 100644 index 00000000..37620dba --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test02/test02.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53510544 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test02/test02.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test02/test02.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test02/test02.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test03/test03.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test03/test03.uplc new file mode 100644 index 00000000..1c982279 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test03/test03.uplc @@ -0,0 +1,5 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #fc51cd8e6218a1a38da47ed00230f0580816ed13ba3303ac5deb911548908025)] + (con bytestring #af82)] + (con bytestring #6291d657deec24024827e69c3abe01a30ce548a284743a445e3680d7db5ac3ac18ff9b538d16f290ae67f760984dc6594a7c15e9716ed28dc027beceea1ec40a)]) + diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test03/test03.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test03/test03.uplc.budget.expected new file mode 100644 index 00000000..37620dba --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test03/test03.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53510544 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test03/test03.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test03/test03.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test03/test03.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test04/test04.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test04/test04.uplc new file mode 100644 index 00000000..b0ed6be7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test04/test04.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #e61a185bcef2613a6c7cb79763ce945d3b245d76114dd440bcf5f2dc1aa57057)] + (con bytestring #cbc77b)] + (con bytestring #d9868d52c2bebce5f3fa5a79891970f309cb6591e3e1702a70276fa97c24b3a8e58606c38c9758529da50ee31b8219cba45271c689afa60b0ea26c99db19b00c)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test04/test04.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test04/test04.uplc.budget.expected new file mode 100644 index 00000000..37620dba --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test04/test04.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53510544 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test04/test04.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test04/test04.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test04/test04.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test05/test05.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test05/test05.uplc new file mode 100644 index 00000000..053c66b7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test05/test05.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #6df9340c138cc188b5fe4464ebaa3f7fc206a2d55c3434707e74c9fc04e20ebb)] + (con bytestring #5f4c8989)] + (con bytestring #124f6fc6b0d100842769e71bd530664d888df8507df6c56dedfdb509aeb93416e26b918d38aa06305df3095697c18b2aa832eaa52edc0ae49fbae5a85e150c07)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test05/test05.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test05/test05.uplc.budget.expected new file mode 100644 index 00000000..37620dba --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test05/test05.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53510544 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test05/test05.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test05/test05.uplc.expected new file mode 100644 index 00000000..dd87da54 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test05/test05.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test06/test06.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test06/test06.uplc new file mode 100644 index 00000000..34e77acc --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test06/test06.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f01)] + (con bytestring #18b6bec097)] + (con bytestring #b2fc46ad47af464478c199e1f8be169f1be6327c7f9a0a6689371ca94caf04064a01b22aff1520abd58951341603faed768cf78ce97ae7b038abfe456aa17c09)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test06/test06.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test06/test06.uplc.budget.expected new file mode 100644 index 00000000..37620dba --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test06/test06.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53510544 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test06/test06.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test06/test06.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test06/test06.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test07/test07.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test07/test07.uplc new file mode 100644 index 00000000..28b638c4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test07/test07.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #fbcfbfa40505d7f2be444a33d185cc54e16d615260e1640b2b5087b83ee3643d)] + (con bytestring #89010d855972)] + (con bytestring #6ed629fc1d9ce9e1468755ff636d5a3f40a5d9c91afd93b79d241830f7e5fa29854b8f20cc6eecbb248dbd8d16d14e99752194e4904d09c74d639518839d2300)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test07/test07.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test07/test07.uplc.budget.expected new file mode 100644 index 00000000..37620dba --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test07/test07.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53510544 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test07/test07.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test07/test07.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test07/test07.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test08/test08.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test08/test08.uplc new file mode 100644 index 00000000..c0e18458 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test08/test08.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #98a5e3a36e67aaba89888bf093de1ad963e774013b3902bfab356d8b90178a63)] + (con bytestring #b4a8f381e70e7a)] + (con bytestring #6e0af2fe55ae377a6b7a7278edfb419bd321e06d0df5e27037db8812e7e3529810fa5552f6c0020985ca17a0e02e036d7b222a24f99b77b75fdd16cb05568107)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test08/test08.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test08/test08.uplc.budget.expected new file mode 100644 index 00000000..37620dba --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test08/test08.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53510544 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test08/test08.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test08/test08.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test08/test08.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test09/test09.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test09/test09.uplc new file mode 100644 index 00000000..668c70c9 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test09/test09.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #f81fb54a825fced95eb033afcd64314075abfb0abd20a970892503436f34b863)] + (con bytestring #4284abc51bb67235)] + (con bytestring #d6addec5afb0528ac17bb178d3e7f2887f9adbb1ad16e110545ef3bc57f9de2314a5c8388f723b8907be0f3ac90c6259bbe885ecc17645df3db7d488f805fa08)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test09/test09.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test09/test09.uplc.budget.expected new file mode 100644 index 00000000..37620dba --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test09/test09.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53510544 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test09/test09.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test09/test09.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test09/test09.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test10/test10.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test10/test10.uplc new file mode 100644 index 00000000..d258cd6a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test10/test10.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #c1a49c66e617f9ef5ec66bc4c6564ca33de2a5fb5e1464062e6d6c6219155efd)] + (con bytestring #672bf8965d04bc5146)] + (con bytestring #2c76a04af2391c147082e33faacdbe56642a1e134bd388620b852b901a6bc16ff6c9cc9404c41dea12ed281da067a1513866f9d964f8bdd24953856c50042901)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test10/test10.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test10/test10.uplc.budget.expected new file mode 100644 index 00000000..a9f85a17 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test10/test10.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53524877 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test10/test10.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test10/test10.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test10/test10.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test11/test11.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test11/test11.uplc new file mode 100644 index 00000000..2797d7ba --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test11/test11.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #31b2524b8348f7ab1dfafa675cc538e9a84e3fe5819e27c12ad8bbc1a36e4dff)] + (con bytestring #33d7a786aded8c1bf691)] + (con bytestring #28e4598c415ae9de01f03f9f3fab4e919e8bf537dd2b0cdf6e79b9e6559c9409d9151a4c40f083193937627c369488259e99da5a9f0a87497fa6696a5dd6ce08)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test11/test11.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test11/test11.uplc.budget.expected new file mode 100644 index 00000000..a9f85a17 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test11/test11.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53524877 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test11/test11.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test11/test11.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test11/test11.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test12/test12.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test12/test12.uplc new file mode 100644 index 00000000..cb332d4e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test12/test12.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #44b57ee30cdb55829d0a5d4f046baef078f1e97a7f21b62d75f8e96ea139c35f)] + (con bytestring #3486f68848a65a0eb5507d)] + (con bytestring #77d389e599630d934076329583cd4105a649a9292abc44cd28c40000c8e2f5ac7660a81c85b72af8452d7d25c070861dae91601c7803d656531650dd4e5c4100)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test12/test12.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test12/test12.uplc.budget.expected new file mode 100644 index 00000000..a9f85a17 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test12/test12.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53524877 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test12/test12.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test12/test12.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test12/test12.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test13/test13.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test13/test13.uplc new file mode 100644 index 00000000..ec9cf40b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test13/test13.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #6fe83693d011d111131c4f3fbaaa40a9d3d76b30012ff73bb0e39ec27ab18257)] + (con bytestring #5a8d9d0a22357e6655f9c785)] + (con bytestring #0f9ad9793033a2fa06614b277d37381e6d94f65ac2a5a94558d09ed6ce922258c1a567952e863ac94297aec3c0d0c8ddf71084e504860bb6ba27449b55adc40e)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test13/test13.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test13/test13.uplc.budget.expected new file mode 100644 index 00000000..a9f85a17 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test13/test13.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53524877 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test13/test13.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test13/test13.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test13/test13.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test14/test14.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test14/test14.uplc new file mode 100644 index 00000000..1a908dbc --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test14/test14.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #a2eb8c0501e30bae0cf842d2bde8dec7386f6b7fc3981b8c57c9792bb94cf2dd)] + (con bytestring #b87d3813e03f58cf19fd0b6395)] + (con bytestring #d8bb64aad8c9955a115a793addd24f7f2b077648714f49c4694ec995b330d09d640df310f447fd7b6cb5c14f9fe9f490bcf8cfadbfd2169c8ac20d3b8af49a0c)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test14/test14.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test14/test14.uplc.budget.expected new file mode 100644 index 00000000..a9f85a17 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test14/test14.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53524877 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test14/test14.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test14/test14.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test14/test14.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test15/test15.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test15/test15.uplc new file mode 100644 index 00000000..ec1cf10b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test15/test15.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #cf3af898467a5b7a52d33d53bc037e2642a8da996903fc252217e9c033e2f291)] + (con bytestring #55c7fa434f5ed8cdec2b7aeac173)] + (con bytestring #6ee3fe81e23c60eb2312b2006b3b25e6838e02106623f844c44edb8dafd66ab0671087fd195df5b8f58a1d6e52af42908053d55c7321010092748795ef94cf06)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test15/test15.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test15/test15.uplc.budget.expected new file mode 100644 index 00000000..a9f85a17 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test15/test15.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53524877 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test15/test15.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test15/test15.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test15/test15.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test16/test16.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test16/test16.uplc new file mode 100644 index 00000000..1d1fb97f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test16/test16.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #fd2a565723163e29f53c9de3d5e8fbe36a7ab66e1439ec4eae9c0a604af291a5)] + (con bytestring #0a688e79be24f866286d4646b5d81c)] + (con bytestring #f68d04847e5b249737899c014d31c805c5007a62c0a10d50bb1538c5f35503951fbc1e08682f2cc0c92efe8f4985dec61dcbd54d4b94a22547d24451271c8b00)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test16/test16.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test16/test16.uplc.budget.expected new file mode 100644 index 00000000..a9f85a17 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test16/test16.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53524877 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test16/test16.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test16/test16.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test16/test16.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test17/test17.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test17/test17.uplc new file mode 100644 index 00000000..8646e659 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test17/test17.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #34e5a8508c4743746962c066e4badea2201b8ab484de5c4f94476ccd2143955b)] + (con bytestring #c942fa7ac6b23ab7ff612fdc8e68ef39)] + (con bytestring #2a3d27dc40d0a8127949a3b7f908b3688f63b7f14f651aacd715940bdbe27a0809aac142f47ab0e1e44fa490ba87ce5392f33a891539caf1ef4c367cae54500c)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test17/test17.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test17/test17.uplc.budget.expected new file mode 100644 index 00000000..a9f85a17 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test17/test17.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53524877 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test17/test17.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test17/test17.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test17/test17.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test18/test18.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test18/test18.uplc new file mode 100644 index 00000000..462c7ff4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test18/test18.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #0445e456dacc7d5b0bbed23c8200cdb74bdcb03e4c7b73f0a2b9b46eac5d4372)] + (con bytestring #7368724a5b0efb57d28d97622dbde725af)] + (con bytestring #3653ccb21219202b8436fb41a32ba2618c4a133431e6e63463ceb3b6106c4d56e1d2ba165ba76eaad3dc39bffb130f1de3d8e6427db5b71938db4e272bc3e20b)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test18/test18.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test18/test18.uplc.budget.expected new file mode 100644 index 00000000..c5f7b892 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test18/test18.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53539210 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test18/test18.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test18/test18.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test18/test18.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test19/test19.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test19/test19.uplc new file mode 100644 index 00000000..f558d30c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test19/test19.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #74d29127f199d86a8676aec33b4ce3f225ccb191f52c191ccd1e8cca65213a6b)] + (con bytestring #bd8e05033f3a8bcdcbf4beceb70901c82e31)] + (con bytestring #fbe929d743a03c17910575492f3092ee2a2bf14a60a3fcacec74a58c7334510fc262db582791322d6c8c41f1700adb80027ecabc14270b703444ae3ee7623e0a)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test19/test19.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test19/test19.uplc.budget.expected new file mode 100644 index 00000000..c5f7b892 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test19/test19.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53539210 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test19/test19.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test19/test19.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test19/test19.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test20/test20.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test20/test20.uplc new file mode 100644 index 00000000..c8529a47 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test20/test20.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #5b96dca497875bf9664c5e75facf3f9bc54bae913d66ca15ee85f1491ca24d2c)] + (con bytestring #8171456f8b907189b1d779e26bc5afbb08c67a)] + (con bytestring #73bca64e9dd0db88138eedfafcea8f5436cfb74bfb0e7733cf349baa0c49775c56d5934e1d38e36f39b7c5beb0a836510c45126f8ec4b6810519905b0ca07c09)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test20/test20.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test20/test20.uplc.budget.expected new file mode 100644 index 00000000..c5f7b892 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test20/test20.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53539210 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test20/test20.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test20/test20.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test20/test20.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test21/test21.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test21/test21.uplc new file mode 100644 index 00000000..8683db0b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test21/test21.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #1ca281938529896535a7714e3584085b86ef9fec723f42819fc8dd5d8c00817f)] + (con bytestring #8ba6a4c9a15a244a9c26bb2a59b1026f21348b49)] + (con bytestring #a1adc2bc6a2d980662677e7fdff6424de7dba50f5795ca90fdf3e96e256f3285cac71d3360482e993d0294ba4ec7440c61affdf35fe83e6e04263937db93f105)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test21/test21.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test21/test21.uplc.budget.expected new file mode 100644 index 00000000..c5f7b892 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test21/test21.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53539210 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test21/test21.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test21/test21.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test21/test21.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test22/test22.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test22/test22.uplc new file mode 100644 index 00000000..1d67ac7e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test22/test22.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #7fae45dd0a05971026d410bc497af5be7d0827a82a145c203f625dfcb8b03ba8)] + (con bytestring #1d566a6232bbaab3e6d8804bb518a498ed0f904986)] + (con bytestring #bb61cf84de61862207c6a455258bc4db4e15eea0317ff88718b882a06b5cf6ec6fd20c5a269e5d5c805bafbcc579e2590af414c7c227273c102a10070cdfe80f)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test22/test22.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test22/test22.uplc.budget.expected new file mode 100644 index 00000000..c5f7b892 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test22/test22.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53539210 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test22/test22.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test22/test22.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test22/test22.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test23/test23.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test23/test23.uplc new file mode 100644 index 00000000..0ab74c72 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test23/test23.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #48359b850d23f0715d94bb8bb75e7e14322eaf14f06f28a805403fbda002fc85)] + (con bytestring #1b0afb0ac4ba9ab7b7172cddc9eb42bba1a64bce47d4)] + (con bytestring #b6dcd09989dfbac54322a3ce87876e1d62134da998c79d24b50bd7a6a797d86a0e14dc9d7491d6c14a673c652cfbec9f962a38c945da3b2f0879d0b68a921300)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test23/test23.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test23/test23.uplc.budget.expected new file mode 100644 index 00000000..c5f7b892 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test23/test23.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53539210 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test23/test23.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test23/test23.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test23/test23.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test24/test24.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test24/test24.uplc new file mode 100644 index 00000000..1a135060 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test24/test24.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #fdb30673402faf1c8033714f3517e47cc0f91fe70cf3836d6c23636e3fd2287c)] + (con bytestring #507c94c8820d2a5793cbf3442b3d71936f35fe3afef316)] + (con bytestring #7ef66e5e86f2360848e0014e94880ae2920ad8a3185a46b35d1e07dea8fa8ae4f6b843ba174d99fa7986654a0891c12a794455669375bf92af4cc2770b579e0c)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test24/test24.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test24/test24.uplc.budget.expected new file mode 100644 index 00000000..c5f7b892 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test24/test24.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53539210 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test24/test24.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test24/test24.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test24/test24.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test25/test25.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test25/test25.uplc new file mode 100644 index 00000000..2300b191 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test25/test25.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #b1d39801892027d58a8c64335163195893bfc1b61dbeca3260497e1f30371107)] + (con bytestring #d3d615a8472d9962bb70c5b5466a3d983a4811046e2a0ef5)] + (con bytestring #836afa764d9c48aa4770a4388b654e97b3c16f082967febca27f2fc47ddfd9244b03cfc729698acf5109704346b60b230f255430089ddc56912399d1122de70a)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test25/test25.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test25/test25.uplc.budget.expected new file mode 100644 index 00000000..c5f7b892 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test25/test25.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53539210 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test25/test25.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test25/test25.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test25/test25.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test26/test26.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test26/test26.uplc new file mode 100644 index 00000000..ce94e043 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test26/test26.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #d0c846f97fe28585c0ee159015d64c56311c886eddcc185d296dbb165d2625d6)] + (con bytestring #6ada80b6fa84f7034920789e8536b82d5e4678059aed27f71c)] + (con bytestring #16e462a29a6dd498685a3718b3eed00cc1598601ee47820486032d6b9acc9bf89f57684e08d8c0f05589cda2882a05dc4c63f9d0431d6552710812433003bc08)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test26/test26.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test26/test26.uplc.budget.expected new file mode 100644 index 00000000..d29b7f2b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test26/test26.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53553543 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test26/test26.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test26/test26.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test26/test26.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test27/test27.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test27/test27.uplc new file mode 100644 index 00000000..dba00a9a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test27/test27.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #2bf32ba142ba4622d8f3e29ecd85eea07b9c47be9d64412c9b510b27dd218b23)] + (con bytestring #82cb53c4d5a013bae5070759ec06c3c6955ab7a4050958ec328c)] + (con bytestring #881f5b8c5a030df0f75b6634b070dd27bd1ee3c08738ae349338b3ee6469bbf9760b13578a237d5182535ede121283027a90b5f865d63a6537dca07b44049a0f)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test27/test27.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test27/test27.uplc.budget.expected new file mode 100644 index 00000000..d29b7f2b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test27/test27.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53553543 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test27/test27.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test27/test27.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test27/test27.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test28/test28.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test28/test28.uplc new file mode 100644 index 00000000..b07f60f2 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test28/test28.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #94d23d977c33e49e5e4992c68f25ec99a27c41ce6b91f2bfa0cd8292fe962835)] + (con bytestring #a9a8cbb0ad585124e522abbfb40533bdd6f49347b55b18e8558cb0)] + (con bytestring #3acd39bec8c3cd2b44299722b5850a0400c1443590fd4861d59aae7496acb3df73fc3fdf7969ae5f50ba47dddc435246e5fd376f6b891cd4c2caf5d614b6170c)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test28/test28.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test28/test28.uplc.budget.expected new file mode 100644 index 00000000..d29b7f2b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test28/test28.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53553543 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test28/test28.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test28/test28.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test28/test28.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test29/test29.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test29/test29.uplc new file mode 100644 index 00000000..799a1d99 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test29/test29.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #9d084aa8b97a6b9bafa496dbc6f76f3306a116c9d917e681520a0f914369427e)] + (con bytestring #5cb6f9aa59b80eca14f6a68fb40cf07b794e75171fba96262c1c6adc)] + (con bytestring #f5875423781b66216cb5e8998de5d9ffc29d1d67107054ace3374503a9c3ef811577f269de81296744bd706f1ac478caf09b54cdf871b3f802bd57f9a6cb9101)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test29/test29.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test29/test29.uplc.budget.expected new file mode 100644 index 00000000..d29b7f2b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test29/test29.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53553543 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test29/test29.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test29/test29.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test29/test29.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test30/test30.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test30/test30.uplc new file mode 100644 index 00000000..8d2c4af8 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test30/test30.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #16cee8a3f2631834c88b670897ff0b08ce90cc147b4593b3f1f403727f7e7ad5)] + (con bytestring #32fe27994124202153b5c70d3813fdee9c2aa6e7dc743d4d535f1840a5)] + (con bytestring #d834197c1a3080614e0a5fa0aaaa808824f21c38d692e6ffbd200f7dfb3c8f44402a7382180b98ad0afc8eec1a02acecf3cb7fde627b9f18111f260ab1db9a07)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test30/test30.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test30/test30.uplc.budget.expected new file mode 100644 index 00000000..d29b7f2b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test30/test30.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53553543 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test30/test30.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test30/test30.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test30/test30.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test31/test31.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test31/test31.uplc new file mode 100644 index 00000000..b6369724 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test31/test31.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifyEd25519Signature) + (con bytestring #23be323c562dfd71ce65f5bba56a74a3a6dfc36b573d2f94f635c7f9b4fd5a5b)] + (con bytestring #bb3172795710fe00054d3b5dfef8a11623582da68bf8e46d72d27cece2aa)] + (con bytestring #0f8fad1e6bde771b4f5420eac75c378bae6db5ac6650cd2bc210c1823b432b48e016b10595458ffab92f7a8989b293ceb8dfed6c243a2038fc06652aaaf16f02)]) diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test31/test31.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test31/test31.uplc.budget.expected new file mode 100644 index 00000000..d29b7f2b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test31/test31.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 53553543 +| mem: 810}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test31/test31.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test31/test31.uplc.expected new file mode 100644 index 00000000..b1057ef7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifyEd25519Signature/test31/test31.uplc.expected @@ -0,0 +1 @@ +(program 0.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/long-key/long-key.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/long-key/long-key.uplc new file mode 100644 index 00000000..882502a7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/long-key/long-key.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifySchnorrSecp256k1Signature) + (con bytestring #e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f0101)] + (con bytestring #18b6bec097)] + (con bytestring #b2fc46ad47af464478c199e1f8be169f1be6327c7f9a0a6689371ca94caf04064a01b22aff1520abd58951341603faed768cf78ce97ae7b038abfe456aa17c09)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/long-key/long-key.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/long-key/long-key.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/long-key/long-key.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/long-key/long-key.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/long-key/long-key.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/long-key/long-key.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/long-sig/long-sig.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/long-sig/long-sig.uplc new file mode 100644 index 00000000..ef1d6519 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/long-sig/long-sig.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifySchnorrSecp256k1Signature) + (con bytestring #e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f01)] + (con bytestring #18b6bec097)] + (con bytestring #b2fc46ad47af464478c199e1f8be169f1be6327c7f9a0a6689371ca94caf04064a01b22aff1520abd58951341603faed768cf78ce97ae7b038abfe456aa17c0909)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/long-sig/long-sig.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/long-sig/long-sig.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/long-sig/long-sig.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/long-sig/long-sig.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/long-sig/long-sig.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/long-sig/long-sig.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/short-key/short-key.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/short-key/short-key.uplc new file mode 100644 index 00000000..4dd3a72e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/short-key/short-key.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifySchnorrSecp256k1Signature) + (con bytestring #e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f)] + (con bytestring #18b6bec097)] + (con bytestring #b2fc46ad47af464478c199e1f8be169f1be6327c7f9a0a6689371ca94caf04064a01b22aff1520abd58951341603faed768cf78ce97ae7b038abfe456aa17c09)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/short-key/short-key.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/short-key/short-key.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/short-key/short-key.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/short-key/short-key.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/short-key/short-key.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/short-key/short-key.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/short-sig/short-sig.uplc b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/short-sig/short-sig.uplc new file mode 100644 index 00000000..0d769ed2 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/short-sig/short-sig.uplc @@ -0,0 +1,4 @@ +(program 0.0.0 [[[(builtin verifySchnorrSecp256k1Signature) + (con bytestring #e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f01)] + (con bytestring #18b6bec097)] + (con bytestring #b2fc46ad47af464478c199e1f8be169f1be6327c7f9a0a6689371ca94caf04064a01b22aff1520abd58951341603faed768cf78ce97ae7b038abfe456aa17c)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/short-sig/short-sig.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/short-sig/short-sig.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/short-sig/short-sig.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/short-sig/short-sig.uplc.expected b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/short-sig/short-sig.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/builtin/semantics/verifySchnorrSecp256k1Signature/short-sig/short-sig.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/ApplyAdd1/ApplyAdd1.uplc b/crates/uplc/test_data/conformance/v3/example/ApplyAdd1/ApplyAdd1.uplc new file mode 100644 index 00000000..601c56c3 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/ApplyAdd1/ApplyAdd1.uplc @@ -0,0 +1,94 @@ +(program + 1.0.0 + [ + [ + (force (force (delay (delay (lam f (lam x [ f x ])))))) + [ + (builtin addInteger) + [ + (lam + x0 + [ + [ + (builtin multiplyInteger) + [ [ (builtin multiplyInteger) x0 ] x0 ] + ] + [ + [ + (builtin subtractInteger) + [ + [ (builtin subtractInteger) (con integer 0) ] + (con integer 1) + ] + ] + [ + [ (builtin subtractInteger) (con integer 3) ] (con integer 0) + ] + ] + ] + ) + [ + (lam + x1 + [ + [ + (builtin subtractInteger) + [ + [ (builtin multiplyInteger) (con integer 0) ] + (con integer 2) + ] + ] + [ [ (builtin addInteger) (con integer 0) ] (con integer 1) ] + ] + ) + [ + (lam + x2 + [ + [ (builtin subtractInteger) (con integer 2) ] (con integer 2) + ] + ) + [ (builtin sha3_256) (con bytestring #76) ] + ] + ] + ] + ] + ] + [ + (lam + x0 + [ + [ + (builtin addInteger) + [ + [ + (builtin addInteger) + [ + [ (builtin multiplyInteger) (con integer 2) ] (con integer 1) + ] + ] + [ [ (builtin addInteger) (con integer 2) ] (con integer 3) ] + ] + ] + [ + [ + (builtin subtractInteger) + [ [ (builtin subtractInteger) (con integer 1) ] (con integer 2) ] + ] + [ [ (builtin subtractInteger) (con integer 2) ] (con integer 1) ] + ] + ] + ) + [ + [ (builtin lessThanInteger) (con integer 3) ] + [ + [ + (builtin multiplyInteger) + [ [ (builtin addInteger) (con integer 2) ] (con integer 1) ] + ] + [ [ (builtin subtractInteger) (con integer 2) ] (con integer 0) ] + ] + ] + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/example/ApplyAdd1/ApplyAdd1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/example/ApplyAdd1/ApplyAdd1.uplc.budget.expected new file mode 100644 index 00000000..0c7fc1e5 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/ApplyAdd1/ApplyAdd1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 5284166 +| mem: 11045}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/ApplyAdd1/ApplyAdd1.uplc.expected b/crates/uplc/test_data/conformance/v3/example/ApplyAdd1/ApplyAdd1.uplc.expected new file mode 100644 index 00000000..8e9a3b22 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/ApplyAdd1/ApplyAdd1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 1)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/ApplyAdd2/ApplyAdd2.uplc b/crates/uplc/test_data/conformance/v3/example/ApplyAdd2/ApplyAdd2.uplc new file mode 100644 index 00000000..691d4641 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/ApplyAdd2/ApplyAdd2.uplc @@ -0,0 +1,106 @@ +(program + 1.0.0 + [ + [ + [ + (force (force (delay (delay (lam f (lam x [ f x ])))))) + (builtin addInteger) + ] + [ + (lam + x0 + [ + [ + (builtin multiplyInteger) + [ + [ + (builtin subtractInteger) + [ + [ (builtin subtractInteger) (con integer 3) ] + (con integer 2) + ] + ] + [ [ (builtin addInteger) (con integer 2) ] (con integer 0) ] + ] + ] + [ + [ + (builtin subtractInteger) + [ + [ (builtin multiplyInteger) (con integer 3) ] (con integer 0) + ] + ] + [ [ (builtin multiplyInteger) (con integer 1) ] (con integer 1) ] + ] + ] + ) + [ + [ + (builtin lessThanEqualsInteger) + [ + [ + (builtin subtractInteger) + [ + [ (builtin multiplyInteger) (con integer 3) ] (con integer 3) + ] + ] + [ [ (builtin subtractInteger) (con integer 2) ] (con integer 3) ] + ] + ] + [ + [ + (builtin addInteger) + [ [ (builtin addInteger) (con integer 2) ] (con integer 3) ] + ] + [ [ (builtin subtractInteger) (con integer 3) ] (con integer 3) ] + ] + ] + ] + ] + [ + (lam + x0 + [ + (lam + x2 + [ + [ + (builtin addInteger) + [ + [ (builtin subtractInteger) (con integer 0) ] (con integer 3) + ] + ] + [ [ (builtin subtractInteger) (con integer 2) ] (con integer 1) ] + ] + ) + [ + [ + (builtin subtractInteger) + [ [ (builtin addInteger) (con integer 1) ] (con integer 1) ] + ] + [ [ (builtin subtractInteger) (con integer 2) ] (con integer 0) ] + ] + ] + ) + [ + (lam + x1 + [ + [ + (builtin lessThanInteger) + [ [ (builtin multiplyInteger) (con integer 0) ] (con integer 3) ] + ] + [ [ (builtin addInteger) (con integer 0) ] (con integer 1) ] + ] + ) + [ + [ + (builtin equalsInteger) + [ [ (builtin multiplyInteger) (con integer 3) ] (con integer 2) ] + ] + [ [ (builtin subtractInteger) (con integer 2) ] (con integer 0) ] + ] + ] + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/example/ApplyAdd2/ApplyAdd2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/example/ApplyAdd2/ApplyAdd2.uplc.budget.expected new file mode 100644 index 00000000..0911db66 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/ApplyAdd2/ApplyAdd2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 4605022 +| mem: 13251}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/ApplyAdd2/ApplyAdd2.uplc.expected b/crates/uplc/test_data/conformance/v3/example/ApplyAdd2/ApplyAdd2.uplc.expected new file mode 100644 index 00000000..1cb56cff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/ApplyAdd2/ApplyAdd2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer -1)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/DivideByZero/DivideByZero.uplc b/crates/uplc/test_data/conformance/v3/example/DivideByZero/DivideByZero.uplc new file mode 100644 index 00000000..b03716cc --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/DivideByZero/DivideByZero.uplc @@ -0,0 +1,50 @@ +(program + 1.0.0 + [ + [ + (builtin remainderInteger) + [ + (lam + x0 + [ + [ + (builtin addInteger) + [ + (lam + x1 + [ [ (builtin addInteger) (con integer 3) ] (con integer 3) ] + ) + [ + [ (builtin lessThanInteger) (con integer 1) ] (con integer 0) + ] + ] + ] + [ + (lam + x2 + [ + [ (builtin subtractInteger) (con integer 1) ] (con integer 3) + ] + ) + [ + [ (builtin equalsByteString) (con bytestring #7063) ] + (con bytestring #716466) + ] + ] + ] + ) + [ + (builtin sha2_256) + [ + [ + (builtin appendByteString) + [ (builtin sha2_256) (con bytestring #67696d) ] + ] + [ (builtin sha2_256) (con bytestring #767174) ] + ] + ] + ] + ] + (con integer 0) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/example/DivideByZero/DivideByZero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/example/DivideByZero/DivideByZero.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/DivideByZero/DivideByZero.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/DivideByZero/DivideByZero.uplc.expected b/crates/uplc/test_data/conformance/v3/example/DivideByZero/DivideByZero.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/DivideByZero/DivideByZero.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/DivideByZeroDrop/DivideByZeroDrop.uplc b/crates/uplc/test_data/conformance/v3/example/DivideByZeroDrop/DivideByZeroDrop.uplc new file mode 100644 index 00000000..b5f6dfbb --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/DivideByZeroDrop/DivideByZeroDrop.uplc @@ -0,0 +1,44 @@ +(program + 1.0.0 + [ + [ (force (force (delay (delay (lam x (lam y x)))))) (con integer 0) ] + [ + [ + (builtin divideInteger) + [ + (lam + x0 + [ + (lam x2 x2) + [ + [ + (builtin multiplyInteger) + [ + [ (builtin multiplyInteger) (con integer 2) ] + (con integer 0) + ] + ] + [ + [ (builtin subtractInteger) (con integer 1) ] (con integer 1) + ] + ] + ] + ) + [ + (lam x1 (con integer 1)) + [ + [ + (builtin subtractInteger) + [ + [ (builtin multiplyInteger) (con integer 2) ] (con integer 3) + ] + ] + [ [ (builtin multiplyInteger) (con integer 2) ] (con integer 2) ] + ] + ] + ] + ] + (con integer 0) + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/example/DivideByZeroDrop/DivideByZeroDrop.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/example/DivideByZeroDrop/DivideByZeroDrop.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/DivideByZeroDrop/DivideByZeroDrop.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/DivideByZeroDrop/DivideByZeroDrop.uplc.expected b/crates/uplc/test_data/conformance/v3/example/DivideByZeroDrop/DivideByZeroDrop.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/DivideByZeroDrop/DivideByZeroDrop.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/IfIntegers/IfIntegers.uplc b/crates/uplc/test_data/conformance/v3/example/IfIntegers/IfIntegers.uplc new file mode 100644 index 00000000..11eebed8 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/IfIntegers/IfIntegers.uplc @@ -0,0 +1,91 @@ +(program + 1.0.0 + [ + [ + [ + (force + (delay + (lam + b + (lam + x + (lam + y + [ + [ [ [ (force (builtin ifThenElse)) b ] x ] y ] (con unit ()) + ] + ) + ) + ) + ) + ) + [ + (lam + x0 + [ + [ + (builtin equalsByteString) + [ + (builtin sha2_256) [ (builtin sha3_256) (con bytestring #64) ] + ] + ] + x0 + ] + ) + [ + [ + (builtin appendByteString) + [ + (lam x1 [ (builtin sha3_256) (con bytestring #78) ]) + [ (builtin sha3_256) (con bytestring #726e) ] + ] + ] + (con bytestring #6973) + ] + ] + ] + [ + (force (force (delay (delay (lam x (lam y x)))))) + [ + (lam + x0 + [ + (lam x2 x0) + [ (builtin sha2_256) [ (builtin sha3_256) (con bytestring #) ] ] + ] + ) + [ + [ + (builtin subtractInteger) + [ + [ + (builtin addInteger) + [ + [ (builtin subtractInteger) (con integer 2) ] + (con integer 2) + ] + ] + [ + [ (builtin subtractInteger) (con integer 1) ] (con integer 3) + ] + ] + ] + [ + (lam + x1 + [ + [ (builtin subtractInteger) (con integer 3) ] (con integer 3) + ] + ) + [ + [ (builtin equalsByteString) (con bytestring #6c7a) ] + (con bytestring #6673) + ] + ] + ] + ] + ] + ] + [ (force (force (delay (delay (lam x (lam y x)))))) (con integer 0) ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/example/IfIntegers/IfIntegers.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/example/IfIntegers/IfIntegers.uplc.budget.expected new file mode 100644 index 00000000..3ea9f721 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/IfIntegers/IfIntegers.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 8967710 +| mem: 9642}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/IfIntegers/IfIntegers.uplc.expected b/crates/uplc/test_data/conformance/v3/example/IfIntegers/IfIntegers.uplc.expected new file mode 100644 index 00000000..87e0223f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/IfIntegers/IfIntegers.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 0)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/NatRoundTrip/NatRoundTrip.uplc b/crates/uplc/test_data/conformance/v3/example/NatRoundTrip/NatRoundTrip.uplc new file mode 100644 index 00000000..fc04c311 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/NatRoundTrip/NatRoundTrip.uplc @@ -0,0 +1,51 @@ +(program + 1.0.0 + [ + [ + [ + (force + (delay + (lam + f + [ + (force + (force + (delay + (delay + (lam + f + [ + (force (delay (lam s [ s s ]))) + (lam + s + (lam + x + [ + [ f [ (force (delay (lam s [ s s ]))) s ] ] x + ] + ) + ) + ] + ) + ) + ) + ) + ) + (lam + rec + (lam + z + (lam n [ [ (force n) z ] (lam n' [ [ rec [ f z ] ] n' ]) ]) + ) + ) + ] + ) + ) + ) + [ (builtin addInteger) (con integer 1) ] + ] + (con integer 0) + ] + [ (lam n (delay (lam z (lam f [ f n ])))) (delay (lam z (lam f z))) ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/example/NatRoundTrip/NatRoundTrip.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/example/NatRoundTrip/NatRoundTrip.uplc.budget.expected new file mode 100644 index 00000000..977a5f2f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/NatRoundTrip/NatRoundTrip.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1493308 +| mem: 8802}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/NatRoundTrip/NatRoundTrip.uplc.expected b/crates/uplc/test_data/conformance/v3/example/NatRoundTrip/NatRoundTrip.uplc.expected new file mode 100644 index 00000000..8e9a3b22 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/NatRoundTrip/NatRoundTrip.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 1)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/ScottListSum/ScottListSum.uplc b/crates/uplc/test_data/conformance/v3/example/ScottListSum/ScottListSum.uplc new file mode 100644 index 00000000..12b47561 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/ScottListSum/ScottListSum.uplc @@ -0,0 +1,64 @@ +(program + 1.0.0 + [ + [ + [ + (force + (force + (delay + (delay + (lam + f + [ + (force + (force + (delay + (delay + (lam + f + [ + (force (delay (lam s [ s s ]))) + (lam + s + (lam + x + [ + [ + f [ (force (delay (lam s [ s s ]))) s ] + ] + x + ] + ) + ) + ] + ) + ) + ) + ) + ) + (lam + rec + (lam + z + (lam + xs + [ + [ (force xs) z ] + (lam x (lam xs' [ [ rec [ [ f z ] x ] ] xs' ])) + ] + ) + ) + ) + ] + ) + ) + ) + ) + ) + (builtin addInteger) + ] + (con integer 0) + ] + (force (delay (delay (lam z (lam f z))))) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/example/ScottListSum/ScottListSum.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/example/ScottListSum/ScottListSum.uplc.budget.expected new file mode 100644 index 00000000..e6c17875 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/ScottListSum/ScottListSum.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 848100 +| mem: 5400}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/ScottListSum/ScottListSum.uplc.expected b/crates/uplc/test_data/conformance/v3/example/ScottListSum/ScottListSum.uplc.expected new file mode 100644 index 00000000..87e0223f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/ScottListSum/ScottListSum.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 0)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/churchSucc/churchSucc.uplc b/crates/uplc/test_data/conformance/v3/example/churchSucc/churchSucc.uplc new file mode 100644 index 00000000..677a7e10 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/churchSucc/churchSucc.uplc @@ -0,0 +1 @@ +(program 1.0.0 (lam n (delay (lam z (lam f [ f [ [ (force n) z ] f ] ]))))) diff --git a/crates/uplc/test_data/conformance/v3/example/churchSucc/churchSucc.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/example/churchSucc/churchSucc.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/churchSucc/churchSucc.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/churchSucc/churchSucc.uplc.expected b/crates/uplc/test_data/conformance/v3/example/churchSucc/churchSucc.uplc.expected new file mode 100644 index 00000000..c9a111e0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/churchSucc/churchSucc.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (lam n (delay (lam z (lam f [ f [ [ (force n) z ] f ] ]))))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/churchZero/churchZero.uplc b/crates/uplc/test_data/conformance/v3/example/churchZero/churchZero.uplc new file mode 100644 index 00000000..5d1d5d7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/churchZero/churchZero.uplc @@ -0,0 +1 @@ +(program 1.0.0 (delay (lam z (lam f z)))) diff --git a/crates/uplc/test_data/conformance/v3/example/churchZero/churchZero.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/example/churchZero/churchZero.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/churchZero/churchZero.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/churchZero/churchZero.uplc.expected b/crates/uplc/test_data/conformance/v3/example/churchZero/churchZero.uplc.expected new file mode 100644 index 00000000..1d90a18c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/churchZero/churchZero.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (delay (lam z (lam f z)))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/even2/even2.uplc b/crates/uplc/test_data/conformance/v3/example/even2/even2.uplc new file mode 100644 index 00000000..eb7ad3c1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/even2/even2.uplc @@ -0,0 +1,176 @@ +(program + 1.0.0 + [ + [ + (force + [ + (force + (force + (force + (force + (delay + (delay + (delay + (delay + (lam + f_7 + [ + [ + (force + (delay + (lam + by_1 + [ + (force + (force + (delay + (delay + (lam + f_2 + [ + (force + (delay + (lam s_1 [ s_1 s_1 ]) + ) + ) + (lam + s_3 + (lam + x_4 + [ + [ + f_2 + [ + (force + (delay + (lam + s_1 + [ s_1 s_1 ] + ) + ) + ) + s_3 + ] + ] + x_4 + ] + ) + ) + ] + ) + ) + ) + ) + ) + (lam + rec_8 + (lam + h_11 + (delay + (lam + fr_14 + [ + (force + [ + by_1 + (delay + (lam + fq_16 + [ + (force + [ rec_8 h_11 ] + ) + [ + (force h_11) fq_16 + ] + ] + ) + ) + ] + ) + fr_14 + ] + ) + ) + ) + ) + ] + ) + ) + ) + (lam + k_9 + (delay + (lam + h_12 + [ + [ + h_12 + (lam + x_15 + [ + (force k_9) + (lam + f_0_13 + (lam f_1_14 [ f_0_13 x_15 ]) + ) + ] + ) + ] + (lam + x_18 + [ + (force k_9) + (lam + f_0_16 + (lam f_1_17 [ f_1_17 x_18 ]) + ) + ] + ) + ] + ) + ) + ) + ] + f_7 + ] + ) + ) + ) + ) + ) + ) + ) + ) + ) + (delay + (lam + choose_5 + (lam + even_0 + (lam + odd_1 + [ + [ + choose_5 + (lam n_2 [ [ (force n_2) (con bool True) ] odd_1 ]) + ] + (lam n_3 [ [ (force n_3) (con bool False) ] even_0 ]) + ] + ) + ) + ) + ) + ] + ) + (lam arg_0_0 (lam arg_1_1 arg_0_0)) + ] + [ + (lam n_0 (delay (lam z_2 (lam f_3 [ f_3 n_0 ])))) + [ + (lam n_0 (delay (lam z_2 (lam f_3 [ f_3 n_0 ])))) + (delay (lam z_1 (lam f_2 z_1))) + ] + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/example/even2/even2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/example/even2/even2.uplc.budget.expected new file mode 100644 index 00000000..3e537fec --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/even2/even2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 4352100 +| mem: 27300}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/even2/even2.uplc.expected b/crates/uplc/test_data/conformance/v3/example/even2/even2.uplc.expected new file mode 100644 index 00000000..3760fc7a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/even2/even2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool True)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/even3/even3.uplc b/crates/uplc/test_data/conformance/v3/example/even3/even3.uplc new file mode 100644 index 00000000..a2a7d1d5 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/even3/even3.uplc @@ -0,0 +1,179 @@ +(program + 1.0.0 + [ + [ + (force + [ + (force + (force + (force + (force + (delay + (delay + (delay + (delay + (lam + f_7 + [ + [ + (force + (delay + (lam + by_1 + [ + (force + (force + (delay + (delay + (lam + f_2 + [ + (force + (delay + (lam s_1 [ s_1 s_1 ]) + ) + ) + (lam + s_3 + (lam + x_4 + [ + [ + f_2 + [ + (force + (delay + (lam + s_1 + [ s_1 s_1 ] + ) + ) + ) + s_3 + ] + ] + x_4 + ] + ) + ) + ] + ) + ) + ) + ) + ) + (lam + rec_8 + (lam + h_11 + (delay + (lam + fr_14 + [ + (force + [ + by_1 + (delay + (lam + fq_16 + [ + (force + [ rec_8 h_11 ] + ) + [ + (force h_11) fq_16 + ] + ] + ) + ) + ] + ) + fr_14 + ] + ) + ) + ) + ) + ] + ) + ) + ) + (lam + k_9 + (delay + (lam + h_12 + [ + [ + h_12 + (lam + x_15 + [ + (force k_9) + (lam + f_0_13 + (lam f_1_14 [ f_0_13 x_15 ]) + ) + ] + ) + ] + (lam + x_18 + [ + (force k_9) + (lam + f_0_16 + (lam f_1_17 [ f_1_17 x_18 ]) + ) + ] + ) + ] + ) + ) + ) + ] + f_7 + ] + ) + ) + ) + ) + ) + ) + ) + ) + ) + (delay + (lam + choose_5 + (lam + even_0 + (lam + odd_1 + [ + [ + choose_5 + (lam n_2 [ [ (force n_2) (con bool True) ] odd_1 ]) + ] + (lam n_3 [ [ (force n_3) (con bool False) ] even_0 ]) + ] + ) + ) + ) + ) + ] + ) + (lam arg_0_0 (lam arg_1_1 arg_0_0)) + ] + [ + (lam n_0 (delay (lam z_2 (lam f_3 [ f_3 n_0 ])))) + [ + (lam n_0 (delay (lam z_2 (lam f_3 [ f_3 n_0 ])))) + [ + (lam n_0 (delay (lam z_2 (lam f_3 [ f_3 n_0 ])))) + (delay (lam z_1 (lam f_2 z_1))) + ] + ] + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/example/even3/even3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/example/even3/even3.uplc.budget.expected new file mode 100644 index 00000000..33cd71bc --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/even3/even3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 5456100 +| mem: 34200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/even3/even3.uplc.expected b/crates/uplc/test_data/conformance/v3/example/even3/even3.uplc.expected new file mode 100644 index 00000000..3ee9f07f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/even3/even3.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/evenList/evenList.uplc b/crates/uplc/test_data/conformance/v3/example/evenList/evenList.uplc new file mode 100644 index 00000000..cf278d92 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/evenList/evenList.uplc @@ -0,0 +1,416 @@ +(program + 1.0.0 + [ + [ + [ + (force + (force + (delay + (delay + (lam + f_2 + [ + (force + (force + (delay + (delay + (lam + f_2 + [ + (force (delay (lam s_1 [ s_1 s_1 ]))) + (lam + s_3 + (lam + x_4 + [ + [ + f_2 + [ + (force (delay (lam s_1 [ s_1 s_1 ]))) + s_3 + ] + ] + x_4 + ] + ) + ) + ] + ) + ) + ) + ) + ) + (lam + rec_3 + (lam + z_4 + (lam + xs_5 + [ + [ (force xs_5) z_4 ] + (lam + x_6 + (lam + xs'_7 [ [ rec_3 [ [ f_2 z_4 ] x_6 ] ] xs'_7 ] + ) + ) + ] + ) + ) + ) + ] + ) + ) + ) + ) + ) + (lam + acc_0 + (lam + n_1 + [ + [ (builtin addInteger) acc_0 ] + [ + [ + [ + (force + (delay + (lam + f_1 + [ + (force + (force + (delay + (delay + (lam + f_2 + [ + (force (delay (lam s_1 [ s_1 s_1 ]))) + (lam + s_3 + (lam + x_4 + [ + [ + f_2 + [ + (force + (delay + (lam s_1 [ s_1 s_1 ]) + ) + ) + s_3 + ] + ] + x_4 + ] + ) + ) + ] + ) + ) + ) + ) + ) + (lam + rec_2 + (lam + z_3 + (lam + n_4 + [ + [ (force n_4) z_3 ] + (lam n'_5 [ [ rec_2 [ f_1 z_3 ] ] n'_5 ]) + ] + ) + ) + ) + ] + ) + ) + ) + [ (builtin addInteger) (con integer 1) ] + ] + (con integer 0) + ] + n_1 + ] + ] + ) + ) + ] + (con integer 0) + ] + [ + [ + (force + [ + (force + (force + (force + (force + (delay + (delay + (delay + (delay + (lam + f_7 + [ + [ + (force + (delay + (lam + by_1 + [ + (force + (force + (delay + (delay + (lam + f_2 + [ + (force + (delay + (lam s_1 [ s_1 s_1 ]) + ) + ) + (lam + s_3 + (lam + x_4 + [ + [ + f_2 + [ + (force + (delay + (lam + s_1 + [ + s_1 s_1 + ] + ) + ) + ) + s_3 + ] + ] + x_4 + ] + ) + ) + ] + ) + ) + ) + ) + ) + (lam + rec_8 + (lam + h_11 + (delay + (lam + fr_14 + [ + (force + [ + by_1 + (delay + (lam + fq_16 + [ + (force + [ rec_8 h_11 ] + ) + [ + (force h_11) + fq_16 + ] + ] + ) + ) + ] + ) + fr_14 + ] + ) + ) + ) + ) + ] + ) + ) + ) + (lam + k_9 + (delay + (lam + h_12 + [ + [ + h_12 + (lam + x_15 + [ + (force k_9) + (lam + f_0_13 + (lam f_1_14 [ f_0_13 x_15 ]) + ) + ] + ) + ] + (lam + x_18 + [ + (force k_9) + (lam + f_0_16 + (lam f_1_17 [ f_1_17 x_18 ]) + ) + ] + ) + ] + ) + ) + ) + ] + f_7 + ] + ) + ) + ) + ) + ) + ) + ) + ) + ) + (delay + (lam + choose_9 + (lam + even_0 + (lam + odd_1 + [ + [ + choose_9 + (lam + l_4 + [ + [ + (force l_4) + (force (delay (delay (lam z_2 (lam f_3 z_2))))) + ] + (lam + head_2 + (lam + tail_3 + [ + [ + (force + (delay + (lam + x_1 + (lam + xs_2 + (delay + (lam + z_4 + (lam f_5 [ [ f_5 x_1 ] xs_2 ]) + ) + ) + ) + ) + ) + ) + head_2 + ] + [ odd_1 tail_3 ] + ] + ) + ) + ] + ) + ] + (lam + l_7 + [ + [ + (force l_7) + (force (delay (delay (lam z_2 (lam f_3 z_2))))) + ] + (lam head_5 (lam tail_6 [ even_0 tail_6 ])) + ] + ) + ] + ) + ) + ) + ) + ] + ) + (lam arg_0_0 (lam arg_1_1 arg_0_0)) + ] + [ + [ + (force + (delay + (lam + x_1 (lam xs_2 (delay (lam z_4 (lam f_5 [ [ f_5 x_1 ] xs_2 ])))) + ) + ) + ) + [ + (lam n_0 (delay (lam z_2 (lam f_3 [ f_3 n_0 ])))) + (delay (lam z_1 (lam f_2 z_1))) + ] + ] + [ + [ + (force + (delay + (lam + x_1 + (lam xs_2 (delay (lam z_4 (lam f_5 [ [ f_5 x_1 ] xs_2 ])))) + ) + ) + ) + [ + (lam n_0 (delay (lam z_2 (lam f_3 [ f_3 n_0 ])))) + [ + (lam n_0 (delay (lam z_2 (lam f_3 [ f_3 n_0 ])))) + (delay (lam z_1 (lam f_2 z_1))) + ] + ] + ] + [ + [ + (force + (delay + (lam + x_1 + (lam xs_2 (delay (lam z_4 (lam f_5 [ [ f_5 x_1 ] xs_2 ])))) + ) + ) + ) + [ + (lam n_0 (delay (lam z_2 (lam f_3 [ f_3 n_0 ])))) + [ + (lam n_0 (delay (lam z_2 (lam f_3 [ f_3 n_0 ])))) + [ + (lam n_0 (delay (lam z_2 (lam f_3 [ f_3 n_0 ])))) + (delay (lam z_1 (lam f_2 z_1))) + ] + ] + ] + ] + (force (delay (delay (lam z_2 (lam f_3 z_2))))) + ] + ] + ] + ] + ] +) diff --git a/crates/uplc/test_data/conformance/v3/example/evenList/evenList.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/example/evenList/evenList.uplc.budget.expected new file mode 100644 index 00000000..0fa6fea2 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/evenList/evenList.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 13215348 +| mem: 78912}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/evenList/evenList.uplc.expected b/crates/uplc/test_data/conformance/v3/example/evenList/evenList.uplc.expected new file mode 100644 index 00000000..68ab9fd0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/evenList/evenList.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 4)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/factorial/factorial.uplc b/crates/uplc/test_data/conformance/v3/example/factorial/factorial.uplc new file mode 100644 index 00000000..2f90c3ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/factorial/factorial.uplc @@ -0,0 +1,184 @@ +(program + 1.0.0 + [ + (lam + i + [ + [ + [ + (force + (force + (delay + (delay + (lam + f + [ + (force + (force + (delay + (delay + (lam + f + [ + (force (delay (lam s [ s s ]))) + (lam + s + (lam + x + [ + [ + f + [ + (force (delay (lam s [ s s ]))) s + ] + ] + x + ] + ) + ) + ] + ) + ) + ) + ) + ) + (lam + rec + (lam + z + (lam + xs + [ + [ (force xs) z ] + (lam x (lam xs' [ [ rec [ [ f z ] x ] ] xs' ])) + ] + ) + ) + ) + ] + ) + ) + ) + ) + ) + (builtin multiplyInteger) + ] + (con integer 1) + ] + [ + [ + (lam + n + (lam + m + [ + [ + (force + (force + (delay + (delay + (lam + f + [ + (force (delay (lam s [ s s ]))) + (lam + s + (lam + x + [ + [ + f [ (force (delay (lam s [ s s ]))) s ] + ] + x + ] + ) + ) + ] + ) + ) + ) + ) + ) + (lam + rec + (lam + n' + [ + [ + [ + (force + (delay + (lam + b + (lam + x + (lam + y + [ + [ + [ + [ (force (builtin ifThenElse)) b ] + x + ] + y + ] + (con unit ()) + ] + ) + ) + ) + ) + ) + [ [ (builtin lessThanEqualsInteger) n' ] m ] + ] + (lam + u + [ + [ + (force + (delay + (lam + x + (lam + xs + (delay (lam z (lam f [ [ f x ] xs ]))) + ) + ) + ) + ) + n' + ] + [ + rec + [ + (lam + i + [ + [ (builtin addInteger) i ] + (con integer 1) + ] + ) + n' + ] + ] + ] + ) + ] + (lam u (force (delay (delay (lam z (lam f z)))))) + ] + ) + ) + ] + n + ] + ) + ) + (con integer 1) + ] + i + ] + ] + ) + (con integer 4) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/example/factorial/factorial.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/example/factorial/factorial.uplc.budget.expected new file mode 100644 index 00000000..b9736f6f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/factorial/factorial.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 9352174 +| mem: 50026}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/factorial/factorial.uplc.expected b/crates/uplc/test_data/conformance/v3/example/factorial/factorial.uplc.expected new file mode 100644 index 00000000..60f178c4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/factorial/factorial.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 24)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/fibonacci/fibonacci.uplc b/crates/uplc/test_data/conformance/v3/example/fibonacci/fibonacci.uplc new file mode 100644 index 00000000..b1683917 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/fibonacci/fibonacci.uplc @@ -0,0 +1,77 @@ +(program + 1.0.0 + [ + (lam + i0 + [ + [ + (force + (force + (delay + (delay + (lam + f + [ + (force (delay (lam s [ s s ]))) + (lam + s + (lam + x [ [ f [ (force (delay (lam s [ s s ]))) s ] ] x ] + ) + ) + ] + ) + ) + ) + ) + ) + (lam + rec + (lam + i + [ + [ + [ + (force + (delay + (lam + b + (lam + x + (lam + y + [ + [ [ [ (force (builtin ifThenElse)) b ] x ] y ] + (con unit ()) + ] + ) + ) + ) + ) + ) + [ [ (builtin lessThanEqualsInteger) i ] (con integer 1) ] + ] + (lam u i) + ] + (lam + u + [ + [ + (builtin addInteger) + [ + rec [ [ (builtin subtractInteger) i ] (con integer 1) ] + ] + ] + [ rec [ [ (builtin subtractInteger) i ] (con integer 2) ] ] + ] + ) + ] + ) + ) + ] + i0 + ] + ) + (con integer 0) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/example/fibonacci/fibonacci.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/example/fibonacci/fibonacci.uplc.budget.expected new file mode 100644 index 00000000..6784f96d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/fibonacci/fibonacci.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 1095986 +| mem: 6202}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/fibonacci/fibonacci.uplc.expected b/crates/uplc/test_data/conformance/v3/example/fibonacci/fibonacci.uplc.expected new file mode 100644 index 00000000..87e0223f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/fibonacci/fibonacci.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 0)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/force-lam/force-lam.uplc b/crates/uplc/test_data/conformance/v3/example/force-lam/force-lam.uplc new file mode 100644 index 00000000..8e096832 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/force-lam/force-lam.uplc @@ -0,0 +1 @@ +(program 1.0.0 (lam x (force x))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/force-lam/force-lam.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/example/force-lam/force-lam.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/force-lam/force-lam.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/force-lam/force-lam.uplc.expected b/crates/uplc/test_data/conformance/v3/example/force-lam/force-lam.uplc.expected new file mode 100644 index 00000000..8e096832 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/force-lam/force-lam.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (lam x (force x))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/overapplication/overapplication.uplc b/crates/uplc/test_data/conformance/v3/example/overapplication/overapplication.uplc new file mode 100644 index 00000000..6ed2b6f6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/overapplication/overapplication.uplc @@ -0,0 +1,19 @@ +(program + 1.0.0 + [ + [ + [ + [ + [ + (force (builtin ifThenElse)) + [ [ (builtin lessThanInteger) (con integer 1) ] (con integer 3) ] + ] + (builtin addInteger) + ] + (builtin subtractInteger) + ] + (con integer 1) + ] + (con integer 3) + ] +) diff --git a/crates/uplc/test_data/conformance/v3/example/overapplication/overapplication.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/example/overapplication/overapplication.uplc.budget.expected new file mode 100644 index 00000000..cbd8834b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/overapplication/overapplication.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 478647 +| mem: 1704}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/overapplication/overapplication.uplc.expected b/crates/uplc/test_data/conformance/v3/example/overapplication/overapplication.uplc.expected new file mode 100644 index 00000000..68ab9fd0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/overapplication/overapplication.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 4)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/succInteger/succInteger.uplc b/crates/uplc/test_data/conformance/v3/example/succInteger/succInteger.uplc new file mode 100644 index 00000000..036d9af1 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/succInteger/succInteger.uplc @@ -0,0 +1 @@ +(program 1.0.0 (lam i [ [ (builtin addInteger) i ] (con integer 1) ])) diff --git a/crates/uplc/test_data/conformance/v3/example/succInteger/succInteger.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/example/succInteger/succInteger.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/succInteger/succInteger.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/example/succInteger/succInteger.uplc.expected b/crates/uplc/test_data/conformance/v3/example/succInteger/succInteger.uplc.expected new file mode 100644 index 00000000..8508da2a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/example/succInteger/succInteger.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (lam i [ [ (builtin addInteger) i ] (con integer 1) ])) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-1/app-1.uplc b/crates/uplc/test_data/conformance/v3/term/app/app-1/app-1.uplc new file mode 100644 index 00000000..3fdc38c6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-1/app-1.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(lam x x) (con unit ())]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-1/app-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/app/app-1/app-1.uplc.budget.expected new file mode 100644 index 00000000..a0079bca --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-1/app-1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 64100 +| mem: 500}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-1/app-1.uplc.expected b/crates/uplc/test_data/conformance/v3/term/app/app-1/app-1.uplc.expected new file mode 100644 index 00000000..10b621b0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-1/app-1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con unit ())) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-2/app-2.uplc b/crates/uplc/test_data/conformance/v3/term/app/app-2/app-2.uplc new file mode 100644 index 00000000..0da7f8a4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-2/app-2.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(lam x x) (con integer 0)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-2/app-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/app/app-2/app-2.uplc.budget.expected new file mode 100644 index 00000000..a0079bca --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-2/app-2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 64100 +| mem: 500}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-2/app-2.uplc.expected b/crates/uplc/test_data/conformance/v3/term/app/app-2/app-2.uplc.expected new file mode 100644 index 00000000..87e0223f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-2/app-2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 0)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-3/app-3.uplc b/crates/uplc/test_data/conformance/v3/term/app/app-3/app-3.uplc new file mode 100644 index 00000000..2ce0b3cc --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-3/app-3.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(lam x (con bool False)) (con integer 42)] +) diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-3/app-3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/app/app-3/app-3.uplc.budget.expected new file mode 100644 index 00000000..a0079bca --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-3/app-3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 64100 +| mem: 500}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-3/app-3.uplc.expected b/crates/uplc/test_data/conformance/v3/term/app/app-3/app-3.uplc.expected new file mode 100644 index 00000000..3ee9f07f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-3/app-3.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-4/app-4.uplc b/crates/uplc/test_data/conformance/v3/term/app/app-4/app-4.uplc new file mode 100644 index 00000000..6af5c82a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-4/app-4.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(lam x x) (con integer 42)] +) diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-4/app-4.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/app/app-4/app-4.uplc.budget.expected new file mode 100644 index 00000000..a0079bca --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-4/app-4.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 64100 +| mem: 500}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-4/app-4.uplc.expected b/crates/uplc/test_data/conformance/v3/term/app/app-4/app-4.uplc.expected new file mode 100644 index 00000000..864f897c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-4/app-4.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 42)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-5/app-5.uplc b/crates/uplc/test_data/conformance/v3/term/app/app-5/app-5.uplc new file mode 100644 index 00000000..c6650881 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-5/app-5.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [[(lam x x) (lam y y)] (con integer 42)] +) diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-5/app-5.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/app/app-5/app-5.uplc.budget.expected new file mode 100644 index 00000000..55387128 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-5/app-5.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 112100 +| mem: 800}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-5/app-5.uplc.expected b/crates/uplc/test_data/conformance/v3/term/app/app-5/app-5.uplc.expected new file mode 100644 index 00000000..864f897c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-5/app-5.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 42)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-6/app-6.uplc b/crates/uplc/test_data/conformance/v3/term/app/app-6/app-6.uplc new file mode 100644 index 00000000..3f1d2b8d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-6/app-6.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(lam x x) (lam y y)] +) diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-6/app-6.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/app/app-6/app-6.uplc.budget.expected new file mode 100644 index 00000000..a0079bca --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-6/app-6.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 64100 +| mem: 500}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-6/app-6.uplc.expected b/crates/uplc/test_data/conformance/v3/term/app/app-6/app-6.uplc.expected new file mode 100644 index 00000000..781faab6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-6/app-6.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (lam y y)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-7/app-7.uplc b/crates/uplc/test_data/conformance/v3/term/app/app-7/app-7.uplc new file mode 100644 index 00000000..7a51dad8 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-7/app-7.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(lam x (lam y x)) (con integer 42)] +) diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-7/app-7.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/app/app-7/app-7.uplc.budget.expected new file mode 100644 index 00000000..a0079bca --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-7/app-7.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 64100 +| mem: 500}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-7/app-7.uplc.expected b/crates/uplc/test_data/conformance/v3/term/app/app-7/app-7.uplc.expected new file mode 100644 index 00000000..4f6ed134 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-7/app-7.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (lam y (con integer 42))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-8/app-8.uplc b/crates/uplc/test_data/conformance/v3/term/app/app-8/app-8.uplc new file mode 100644 index 00000000..be6b2e9c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-8/app-8.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(lam x (lam y x)) (con integer 42) (con bool False)] +) diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-8/app-8.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/app/app-8/app-8.uplc.budget.expected new file mode 100644 index 00000000..55387128 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-8/app-8.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 112100 +| mem: 800}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-8/app-8.uplc.expected b/crates/uplc/test_data/conformance/v3/term/app/app-8/app-8.uplc.expected new file mode 100644 index 00000000..864f897c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-8/app-8.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 42)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-9/app-9.uplc b/crates/uplc/test_data/conformance/v3/term/app/app-9/app-9.uplc new file mode 100644 index 00000000..377c1737 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-9/app-9.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(lam f (lam x (lam y [f x y]))) (lam a (lam b a)) (con bool False) (con bool True)] +) diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-9/app-9.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/app/app-9/app-9.uplc.budget.expected new file mode 100644 index 00000000..c3346b6e --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-9/app-9.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 256100 +| mem: 1700}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/app/app-9/app-9.uplc.expected b/crates/uplc/test_data/conformance/v3/term/app/app-9/app-9.uplc.expected new file mode 100644 index 00000000..3ee9f07f --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/app/app-9/app-9.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con bool False)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/argExpected/argExpected.uplc b/crates/uplc/test_data/conformance/v3/term/argExpected/argExpected.uplc new file mode 100644 index 00000000..30669c97 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/argExpected/argExpected.uplc @@ -0,0 +1,2 @@ +-- addInteger is monomorphic so it must not be forced +(program 1.0.0 [(force (builtin addInteger)) (con integer 5) (con integer 6)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/argExpected/argExpected.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/argExpected/argExpected.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/argExpected/argExpected.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/argExpected/argExpected.uplc.expected b/crates/uplc/test_data/conformance/v3/term/argExpected/argExpected.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/argExpected/argExpected.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-1/case-1.uplc b/crates/uplc/test_data/conformance/v3/term/case/case-1/case-1.uplc new file mode 100644 index 00000000..a08de31c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-1/case-1.uplc @@ -0,0 +1,4 @@ +-- select first branch +(program 1.1.0 + (case (constr 0 (con integer 0)) (lam x (con integer 1)) (lam x (con integer 2))) +) diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-1/case-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/case/case-1/case-1.uplc.budget.expected new file mode 100644 index 00000000..c4132f65 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-1/case-1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 80100 +| mem: 600}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-1/case-1.uplc.expected b/crates/uplc/test_data/conformance/v3/term/case/case-1/case-1.uplc.expected new file mode 100644 index 00000000..c897a619 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-1/case-1.uplc.expected @@ -0,0 +1 @@ +(program 1.1.0 (con integer 1)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-2/case-2.uplc b/crates/uplc/test_data/conformance/v3/term/case/case-2/case-2.uplc new file mode 100644 index 00000000..b9861165 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-2/case-2.uplc @@ -0,0 +1,4 @@ +-- select second branch +(program 1.1.0 + (case (constr 1 (con integer 0)) (lam x (con integer 1)) (lam x (con integer 2))) +) diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-2/case-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/case/case-2/case-2.uplc.budget.expected new file mode 100644 index 00000000..c4132f65 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-2/case-2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 80100 +| mem: 600}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-2/case-2.uplc.expected b/crates/uplc/test_data/conformance/v3/term/case/case-2/case-2.uplc.expected new file mode 100644 index 00000000..2b513f80 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-2/case-2.uplc.expected @@ -0,0 +1 @@ +(program 1.1.0 (con integer 2)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-3/case-3.uplc b/crates/uplc/test_data/conformance/v3/term/case/case-3/case-3.uplc new file mode 100644 index 00000000..a4399f95 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-3/case-3.uplc @@ -0,0 +1,4 @@ +-- select first branch and do computation with the args +(program 1.1.0 + (case (constr 0 (con integer 3) (con integer 2)) (lam x (lam y [(builtin addInteger) x y])) (lam x (lam y [(builtin subtractInteger) x y]))) +) diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-3/case-3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/case/case-3/case-3.uplc.budget.expected new file mode 100644 index 00000000..2d4f813d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-3/case-3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 277308 +| mem: 1202}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-3/case-3.uplc.expected b/crates/uplc/test_data/conformance/v3/term/case/case-3/case-3.uplc.expected new file mode 100644 index 00000000..307ccca4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-3/case-3.uplc.expected @@ -0,0 +1 @@ +(program 1.1.0 (con integer 5)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-4/case-4.uplc b/crates/uplc/test_data/conformance/v3/term/case/case-4/case-4.uplc new file mode 100644 index 00000000..e471f4ec --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-4/case-4.uplc @@ -0,0 +1,4 @@ +-- select second branch and do computation with the args +(program 1.1.0 + (case (constr 1 (con integer 3) (con integer 2)) (lam x (lam y [(builtin addInteger) x y])) (lam x (lam y [(builtin subtractInteger) x y]))) +) diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-4/case-4.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/case/case-4/case-4.uplc.budget.expected new file mode 100644 index 00000000..2d4f813d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-4/case-4.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 277308 +| mem: 1202}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-4/case-4.uplc.expected b/crates/uplc/test_data/conformance/v3/term/case/case-4/case-4.uplc.expected new file mode 100644 index 00000000..c897a619 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-4/case-4.uplc.expected @@ -0,0 +1 @@ +(program 1.1.0 (con integer 1)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-5/case-5.uplc b/crates/uplc/test_data/conformance/v3/term/case/case-5/case-5.uplc new file mode 100644 index 00000000..5478b918 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-5/case-5.uplc @@ -0,0 +1,4 @@ +-- case of non-constr +(program 1.1.0 + (case (con integer 1) (lam x x) (lam x x)) +) diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-5/case-5.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/case/case-5/case-5.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-5/case-5.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-5/case-5.uplc.expected b/crates/uplc/test_data/conformance/v3/term/case/case-5/case-5.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-5/case-5.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-6/case-6.uplc b/crates/uplc/test_data/conformance/v3/term/case/case-6/case-6.uplc new file mode 100644 index 00000000..2d400a90 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-6/case-6.uplc @@ -0,0 +1,4 @@ +-- branch with wrong arguments +(program 1.1.0 + (case (constr 0 (con integer 0)) (con integer 1) (lam x (con integer 2))) +) diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-6/case-6.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/case/case-6/case-6.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-6/case-6.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-6/case-6.uplc.expected b/crates/uplc/test_data/conformance/v3/term/case/case-6/case-6.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-6/case-6.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-8/case-8.uplc b/crates/uplc/test_data/conformance/v3/term/case/case-8/case-8.uplc new file mode 100644 index 00000000..5aae469b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-8/case-8.uplc @@ -0,0 +1,4 @@ +-- nullary case +(program 1.1.0 + (case (constr 0) (con integer 1) (con integer 2)) +) diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-8/case-8.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/case/case-8/case-8.uplc.budget.expected new file mode 100644 index 00000000..f736fb48 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-8/case-8.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 48100 +| mem: 400}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-8/case-8.uplc.expected b/crates/uplc/test_data/conformance/v3/term/case/case-8/case-8.uplc.expected new file mode 100644 index 00000000..c897a619 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-8/case-8.uplc.expected @@ -0,0 +1 @@ +(program 1.1.0 (con integer 1)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-9/case-9.uplc b/crates/uplc/test_data/conformance/v3/term/case/case-9/case-9.uplc new file mode 100644 index 00000000..73b0719b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-9/case-9.uplc @@ -0,0 +1,4 @@ +-- empty case, aka -XEmptyCase +(program 1.1.0 + (case (constr 0)) +) diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-9/case-9.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/case/case-9/case-9.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-9/case-9.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/case/case-9/case-9.uplc.expected b/crates/uplc/test_data/conformance/v3/term/case/case-9/case-9.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/case/case-9/case-9.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/closure/closure.uplc b/crates/uplc/test_data/conformance/v3/term/closure/closure.uplc new file mode 100644 index 00000000..ece5f5b5 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/closure/closure.uplc @@ -0,0 +1 @@ +(program 1.0.0 [ (lam i_0 (lam j_1 i_0)) (con integer 1) ]) diff --git a/crates/uplc/test_data/conformance/v3/term/closure/closure.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/closure/closure.uplc.budget.expected new file mode 100644 index 00000000..a0079bca --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/closure/closure.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 64100 +| mem: 500}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/closure/closure.uplc.expected b/crates/uplc/test_data/conformance/v3/term/closure/closure.uplc.expected new file mode 100644 index 00000000..ee5792f3 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/closure/closure.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (lam j_0 (con integer 1))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/constr/constr-1/constr-1.uplc b/crates/uplc/test_data/conformance/v3/term/constr/constr-1/constr-1.uplc new file mode 100644 index 00000000..9c413fa7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/constr/constr-1/constr-1.uplc @@ -0,0 +1,4 @@ +-- empty constr +(program 1.1.0 + (constr 0 ) +) diff --git a/crates/uplc/test_data/conformance/v3/term/constr/constr-1/constr-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/constr/constr-1/constr-1.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/constr/constr-1/constr-1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/constr/constr-1/constr-1.uplc.expected b/crates/uplc/test_data/conformance/v3/term/constr/constr-1/constr-1.uplc.expected new file mode 100644 index 00000000..a65a6aca --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/constr/constr-1/constr-1.uplc.expected @@ -0,0 +1 @@ +(program 1.1.0 (constr 0)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/constr/constr-2/constr-2.uplc b/crates/uplc/test_data/conformance/v3/term/constr/constr-2/constr-2.uplc new file mode 100644 index 00000000..a27c1c66 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/constr/constr-2/constr-2.uplc @@ -0,0 +1,4 @@ +-- constr with an argument +(program 1.1.0 + (constr 0 (con integer 1)) +) diff --git a/crates/uplc/test_data/conformance/v3/term/constr/constr-2/constr-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/constr/constr-2/constr-2.uplc.budget.expected new file mode 100644 index 00000000..9aec697a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/constr/constr-2/constr-2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 32100 +| mem: 300}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/constr/constr-2/constr-2.uplc.expected b/crates/uplc/test_data/conformance/v3/term/constr/constr-2/constr-2.uplc.expected new file mode 100644 index 00000000..fafd655d --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/constr/constr-2/constr-2.uplc.expected @@ -0,0 +1 @@ +(program 1.1.0 (constr 0 (con integer 1))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/constr/constr-3/constr-3.uplc b/crates/uplc/test_data/conformance/v3/term/constr/constr-3/constr-3.uplc new file mode 100644 index 00000000..03932fb8 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/constr/constr-3/constr-3.uplc @@ -0,0 +1,4 @@ +-- constr can have arbitrary terms in it +(program 1.1.0 + (constr 1 (con integer 1) (lam x x) (constr 0 (con integer 1))) +) diff --git a/crates/uplc/test_data/conformance/v3/term/constr/constr-3/constr-3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/constr/constr-3/constr-3.uplc.budget.expected new file mode 100644 index 00000000..c4132f65 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/constr/constr-3/constr-3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 80100 +| mem: 600}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/constr/constr-3/constr-3.uplc.expected b/crates/uplc/test_data/conformance/v3/term/constr/constr-3/constr-3.uplc.expected new file mode 100644 index 00000000..eba1d628 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/constr/constr-3/constr-3.uplc.expected @@ -0,0 +1 @@ +(program 1.1.0 (constr 1 (con integer 1) (lam x x) (constr 0 (con integer 1)))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/constr/constr-4/constr-4.uplc b/crates/uplc/test_data/conformance/v3/term/constr/constr-4/constr-4.uplc new file mode 100644 index 00000000..106cc268 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/constr/constr-4/constr-4.uplc @@ -0,0 +1,4 @@ +-- constr is strict in all its arguments +(program 1.1.0 + (constr 0 (error)) +) diff --git a/crates/uplc/test_data/conformance/v3/term/constr/constr-4/constr-4.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/constr/constr-4/constr-4.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/constr/constr-4/constr-4.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/constr/constr-4/constr-4.uplc.expected b/crates/uplc/test_data/conformance/v3/term/constr/constr-4/constr-4.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/constr/constr-4/constr-4.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/constr/constr-5/constr-5.uplc b/crates/uplc/test_data/conformance/v3/term/constr/constr-5/constr-5.uplc new file mode 100644 index 00000000..b62e1fe7 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/constr/constr-5/constr-5.uplc @@ -0,0 +1,4 @@ +-- constr is strict in all its arguments +(program 1.1.0 + (constr 0 (con integer 1) (error)) +) diff --git a/crates/uplc/test_data/conformance/v3/term/constr/constr-5/constr-5.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/constr/constr-5/constr-5.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/constr/constr-5/constr-5.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/constr/constr-5/constr-5.uplc.expected b/crates/uplc/test_data/conformance/v3/term/constr/constr-5/constr-5.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/constr/constr-5/constr-5.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/delay/delay-error-1/delay-error-1.uplc b/crates/uplc/test_data/conformance/v3/term/delay/delay-error-1/delay-error-1.uplc new file mode 100644 index 00000000..cdb6cecd --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/delay/delay-error-1/delay-error-1.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(lam x (con integer 4)) (delay (error))] +) diff --git a/crates/uplc/test_data/conformance/v3/term/delay/delay-error-1/delay-error-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/delay/delay-error-1/delay-error-1.uplc.budget.expected new file mode 100644 index 00000000..a0079bca --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/delay/delay-error-1/delay-error-1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 64100 +| mem: 500}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/delay/delay-error-1/delay-error-1.uplc.expected b/crates/uplc/test_data/conformance/v3/term/delay/delay-error-1/delay-error-1.uplc.expected new file mode 100644 index 00000000..68ab9fd0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/delay/delay-error-1/delay-error-1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 4)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/delay/delay-error-2/delay-error-2.uplc b/crates/uplc/test_data/conformance/v3/term/delay/delay-error-2/delay-error-2.uplc new file mode 100644 index 00000000..c66a7e76 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/delay/delay-error-2/delay-error-2.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(lam x x) (delay (error))] +) diff --git a/crates/uplc/test_data/conformance/v3/term/delay/delay-error-2/delay-error-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/delay/delay-error-2/delay-error-2.uplc.budget.expected new file mode 100644 index 00000000..a0079bca --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/delay/delay-error-2/delay-error-2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 64100 +| mem: 500}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/delay/delay-error-2/delay-error-2.uplc.expected b/crates/uplc/test_data/conformance/v3/term/delay/delay-error-2/delay-error-2.uplc.expected new file mode 100644 index 00000000..2a995cfc --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/delay/delay-error-2/delay-error-2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (delay (error ))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/delay/delay-lam/delay-lam.uplc b/crates/uplc/test_data/conformance/v3/term/delay/delay-lam/delay-lam.uplc new file mode 100644 index 00000000..53caa7da --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/delay/delay-lam/delay-lam.uplc @@ -0,0 +1 @@ +(program 1.0.0 (lam x (delay x))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/delay/delay-lam/delay-lam.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/delay/delay-lam/delay-lam.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/delay/delay-lam/delay-lam.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/delay/delay-lam/delay-lam.uplc.expected b/crates/uplc/test_data/conformance/v3/term/delay/delay-lam/delay-lam.uplc.expected new file mode 100644 index 00000000..53caa7da --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/delay/delay-lam/delay-lam.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (lam x (delay x))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/force/force-1/force-1.uplc b/crates/uplc/test_data/conformance/v3/term/force/force-1/force-1.uplc new file mode 100644 index 00000000..c18ae365 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/force/force-1/force-1.uplc @@ -0,0 +1,2 @@ +-- can only force a delay or a forceable (polymorphic) builtin +(program 1.0.0 (force (con integer 5))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/force/force-1/force-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/force/force-1/force-1.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/force/force-1/force-1.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/force/force-1/force-1.uplc.expected b/crates/uplc/test_data/conformance/v3/term/force/force-1/force-1.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/force/force-1/force-1.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/force/force-2/force-2.uplc b/crates/uplc/test_data/conformance/v3/term/force/force-2/force-2.uplc new file mode 100644 index 00000000..2242bd8a --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/force/force-2/force-2.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(lam x (force x)) (delay (con integer 4))] +) diff --git a/crates/uplc/test_data/conformance/v3/term/force/force-2/force-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/force/force-2/force-2.uplc.budget.expected new file mode 100644 index 00000000..1014595b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/force/force-2/force-2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 96100 +| mem: 700}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/force/force-2/force-2.uplc.expected b/crates/uplc/test_data/conformance/v3/term/force/force-2/force-2.uplc.expected new file mode 100644 index 00000000..68ab9fd0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/force/force-2/force-2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 4)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/force/force-3/force-3.uplc b/crates/uplc/test_data/conformance/v3/term/force/force-3/force-3.uplc new file mode 100644 index 00000000..faec27e0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/force/force-3/force-3.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + [(lam x (force [(lam y y) x])) (delay (con integer 4))] +) diff --git a/crates/uplc/test_data/conformance/v3/term/force/force-3/force-3.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/force/force-3/force-3.uplc.budget.expected new file mode 100644 index 00000000..cd6e984b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/force/force-3/force-3.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 144100 +| mem: 1000}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/force/force-3/force-3.uplc.expected b/crates/uplc/test_data/conformance/v3/term/force/force-3/force-3.uplc.expected new file mode 100644 index 00000000..68ab9fd0 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/force/force-3/force-3.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (con integer 4)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/force/force-4/force-4.uplc b/crates/uplc/test_data/conformance/v3/term/force/force-4/force-4.uplc new file mode 100644 index 00000000..c7b2c594 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/force/force-4/force-4.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + (force (lam x x)) +) diff --git a/crates/uplc/test_data/conformance/v3/term/force/force-4/force-4.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/force/force-4/force-4.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/force/force-4/force-4.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/force/force-4/force-4.uplc.expected b/crates/uplc/test_data/conformance/v3/term/force/force-4/force-4.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/force/force-4/force-4.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/lam/lam-1/lam-1.uplc b/crates/uplc/test_data/conformance/v3/term/lam/lam-1/lam-1.uplc new file mode 100644 index 00000000..b4f6fd5c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/lam/lam-1/lam-1.uplc @@ -0,0 +1 @@ +(program 1.0.0 (lam x x)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/lam/lam-1/lam-1.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/lam/lam-1/lam-1.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/lam/lam-1/lam-1.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/lam/lam-1/lam-1.uplc.expected b/crates/uplc/test_data/conformance/v3/term/lam/lam-1/lam-1.uplc.expected new file mode 100644 index 00000000..b4f6fd5c --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/lam/lam-1/lam-1.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (lam x x)) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/lam/lam-2/lam-2.uplc b/crates/uplc/test_data/conformance/v3/term/lam/lam-2/lam-2.uplc new file mode 100644 index 00000000..3cd7e867 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/lam/lam-2/lam-2.uplc @@ -0,0 +1,3 @@ +(program 1.0.0 + (lam x (con integer 23)) +) diff --git a/crates/uplc/test_data/conformance/v3/term/lam/lam-2/lam-2.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/lam/lam-2/lam-2.uplc.budget.expected new file mode 100644 index 00000000..d9531fb6 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/lam/lam-2/lam-2.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 16100 +| mem: 200}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/lam/lam-2/lam-2.uplc.expected b/crates/uplc/test_data/conformance/v3/term/lam/lam-2/lam-2.uplc.expected new file mode 100644 index 00000000..44694d36 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/lam/lam-2/lam-2.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 (lam x (con integer 23))) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/nonFunctionalApplication/nonFunctionalApplication.uplc b/crates/uplc/test_data/conformance/v3/term/nonFunctionalApplication/nonFunctionalApplication.uplc new file mode 100644 index 00000000..c2d797db --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/nonFunctionalApplication/nonFunctionalApplication.uplc @@ -0,0 +1 @@ +(program 1.0.0 [(con integer 3) (con integer 4)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/nonFunctionalApplication/nonFunctionalApplication.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/nonFunctionalApplication/nonFunctionalApplication.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/nonFunctionalApplication/nonFunctionalApplication.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/nonFunctionalApplication/nonFunctionalApplication.uplc.expected b/crates/uplc/test_data/conformance/v3/term/nonFunctionalApplication/nonFunctionalApplication.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/nonFunctionalApplication/nonFunctionalApplication.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/unlifting-sat/unlifting-sat.uplc b/crates/uplc/test_data/conformance/v3/term/unlifting-sat/unlifting-sat.uplc new file mode 100644 index 00000000..e0450e29 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/unlifting-sat/unlifting-sat.uplc @@ -0,0 +1,2 @@ +-- ill-typed. This fails at runtime since the builtin application is saturated. +(program 1.0.0 [(builtin addInteger) (con unit ()) (con integer 3)]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/unlifting-sat/unlifting-sat.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/unlifting-sat/unlifting-sat.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/unlifting-sat/unlifting-sat.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/unlifting-sat/unlifting-sat.uplc.expected b/crates/uplc/test_data/conformance/v3/term/unlifting-sat/unlifting-sat.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/unlifting-sat/unlifting-sat.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/unlifting-unsat/unlifting-unsat.uplc b/crates/uplc/test_data/conformance/v3/term/unlifting-unsat/unlifting-unsat.uplc new file mode 100644 index 00000000..ce2efb7b --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/unlifting-unsat/unlifting-unsat.uplc @@ -0,0 +1,2 @@ +-- ill-typed but does not fail at runtime because the builtin application is not saturated. +(program 1.0.0 [(builtin addInteger) (con unit ())]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/unlifting-unsat/unlifting-unsat.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/unlifting-unsat/unlifting-unsat.uplc.budget.expected new file mode 100644 index 00000000..f736fb48 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/unlifting-unsat/unlifting-unsat.uplc.budget.expected @@ -0,0 +1,2 @@ +({cpu: 48100 +| mem: 400}) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/unlifting-unsat/unlifting-unsat.uplc.expected b/crates/uplc/test_data/conformance/v3/term/unlifting-unsat/unlifting-unsat.uplc.expected new file mode 100644 index 00000000..57d2ddd4 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/unlifting-unsat/unlifting-unsat.uplc.expected @@ -0,0 +1 @@ +(program 1.0.0 [ (builtin addInteger) (con unit ()) ]) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/var/var.uplc b/crates/uplc/test_data/conformance/v3/term/var/var.uplc new file mode 100644 index 00000000..7a343083 --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/var/var.uplc @@ -0,0 +1 @@ +(program 1.0.0 x) \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/var/var.uplc.budget.expected b/crates/uplc/test_data/conformance/v3/term/var/var.uplc.budget.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/var/var.uplc.budget.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/test_data/conformance/v3/term/var/var.uplc.expected b/crates/uplc/test_data/conformance/v3/term/var/var.uplc.expected new file mode 100644 index 00000000..ccc477ff --- /dev/null +++ b/crates/uplc/test_data/conformance/v3/term/var/var.uplc.expected @@ -0,0 +1 @@ +evaluation failure \ No newline at end of file diff --git a/crates/uplc/tests/conformance.rs b/crates/uplc/tests/conformance.rs index 11743117..7aca4897 100644 --- a/crates/uplc/tests/conformance.rs +++ b/crates/uplc/tests/conformance.rs @@ -1,11 +1,12 @@ +use pallas_primitives::conway::Language; use std::{ ffi::OsStr, fs, path::{Path, PathBuf}, }; - use uplc::{ ast::{Name, NamedDeBruijn, Program}, + machine::cost_model::ExBudget, parser, }; use walkdir::WalkDir; @@ -25,7 +26,30 @@ fn expected_to_program(expected_file: &PathBuf) -> Result, String> } } -fn actual_evaluation_result(file: &Path) -> Result, String> { +fn file_to_budget(expected_budget_file: &PathBuf) -> Result { + fs::read_to_string(expected_budget_file) + .map_err(|e| format!("failed to read .uplc.budget.expected file: {e:?}")) + .and_then(|src| budget::ex_budget(&src).map_err(|e| format!("{e:?}"))) +} + +peg::parser! { + grammar budget() for str { + pub rule ex_budget() -> ExBudget + = "({" _* "cpu" _* ":" _* cpu:decimal() _* "|" _* "mem" _* ":" _* mem:decimal() _* "})" _* { + ExBudget { cpu, mem } + } + + rule decimal() -> i64 + = n:$(['0'..='9']+) {? n.parse().or(Err("decimal")) } + + rule _ = [' ' | '\n' | '\r' | '\t'] / "--" $([^ '\n']*) "\n" + } +} + +fn actual_evaluation_result( + file: &Path, + language: &Language, +) -> Result<(Program, ExBudget), String> { let code = fs::read_to_string(file).expect("Failed to read .uplc file"); let program = parser::program(&code).map_err(|_| PARSE_ERROR.to_string())?; @@ -36,30 +60,61 @@ fn actual_evaluation_result(file: &Path) -> Result, String> { let version = program.version; - let term = program - .eval(Default::default()) - .result() - .map_err(|_| EVALUATION_FAILURE.to_string())?; + let eval = program.eval_version(Default::default(), language); + + let cost = eval.cost(); + + let term = eval.result().map_err(|_| EVALUATION_FAILURE.to_string())?; let program = Program { version, term }; - Ok(program.try_into().unwrap()) + Ok((program.try_into().unwrap(), cost)) } -#[test] -fn evaluation() { - let root = "test_data/conformance/evaluation"; +fn plutus_conformance_tests(language: Language) { + let root = format!( + "test_data/conformance/{}", + match language { + Language::PlutusV1 => "v1", + Language::PlutusV2 => "v2", + Language::PlutusV3 => "v3", + } + ); for entry in WalkDir::new(root).into_iter().filter_map(|e| e.ok()) { let path = entry.path(); if path.extension().and_then(OsStr::to_str) == Some("uplc") { let expected_file = path.with_extension("uplc.expected"); + let expected_budget_file = path.with_extension("uplc.budget.expected"); - let actual = actual_evaluation_result(path); + let eval = actual_evaluation_result(path, &language); let expected = expected_to_program(&expected_file); - pretty_assertions::assert_eq!(expected, actual, "{}", path.display()); + match eval { + Ok((actual, cost)) => { + pretty_assertions::assert_eq!(expected, Ok(actual), "{}", path.display()); + match language { + Language::PlutusV1 | Language::PlutusV2 => {} + Language::PlutusV3 => { + if let Ok(budget) = file_to_budget(&expected_budget_file) { + pretty_assertions::assert_eq!(budget, cost, "{}", path.display()); + } + } + } + } + Err(err) => pretty_assertions::assert_eq!(expected, Err(err), "{}", path.display()), + } } } } + +#[test] +fn plutus_conformance_tests_v2() { + plutus_conformance_tests(Language::PlutusV2) +} + +#[test] +fn plutus_conformance_tests_v3() { + plutus_conformance_tests(Language::PlutusV3) +} diff --git a/examples/acceptance_tests/ci b/examples/acceptance_tests/ci index d3b786fa..f7b424f5 100755 --- a/examples/acceptance_tests/ci +++ b/examples/acceptance_tests/ci @@ -13,13 +13,14 @@ for p in ${TESTS[@]}; do exit_codes+=("$?") done - -for interaction in $(find script_context/validators -type f); do - title=$(basename $interaction) - title="${title%.*}" - cd script_context && ./test.sh $title - exit_codes+=("$?") - cd - +for lang in $(ls script_context); do + for interaction in $(find script_context/$lang/validators -type f); do + title=$(basename $interaction) + title="${title%.*}" + cd script_context/$lang && ./test.sh $title + exit_codes+=("$?") + cd - + done done for code in ${exit_codes[@]}; do diff --git a/examples/acceptance_tests/run-all b/examples/acceptance_tests/run-all-examples similarity index 100% rename from examples/acceptance_tests/run-all rename to examples/acceptance_tests/run-all-examples diff --git a/examples/acceptance_tests/run-all-script-contexts b/examples/acceptance_tests/run-all-script-contexts new file mode 100755 index 00000000..3318d2a6 --- /dev/null +++ b/examples/acceptance_tests/run-all-script-contexts @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +AIKEN=${1:-"cargo run -r --quiet --"} + +TESTS=() +for lang in $(ls script_context); do + for interaction in $(find script_context/$lang/validators -type f); do + title=$(basename $interaction) + title="${title%.*}" + cd script_context/$lang + echo "running $lang/$title..." + ./test.sh $title "$AIKEN" + TESTS+=("$title,$lang,$?") + cd - 1>/dev/null + done +done + +for args in ${TESTS[@]}; do + IFS=',' read title lang code <<< "${args}" + log="script_context/$lang/$title.log" + if [ $code -ne 0 ]; then + echo "=== $lang/$title ❌ (code=$code)" + cat $log && rm -f $log + exit $code + else + echo "=== $lang/$title ✅" + cat $log && rm -f $log + fi + echo "" +done diff --git a/examples/acceptance_tests/script_context/.gitignore b/examples/acceptance_tests/script_context/.gitignore deleted file mode 100644 index f6631aa1..00000000 --- a/examples/acceptance_tests/script_context/.gitignore +++ /dev/null @@ -1 +0,0 @@ -ctx/**/*.cbor diff --git a/examples/acceptance_tests/script_context/aiken.toml b/examples/acceptance_tests/script_context/aiken.toml deleted file mode 100644 index f0bf62fc..00000000 --- a/examples/acceptance_tests/script_context/aiken.toml +++ /dev/null @@ -1,8 +0,0 @@ -name = 'aiken-lang/acceptance_test_script_context' -version = '0.0.0' -description = '' - -[[dependencies]] -name = 'aiken-lang/stdlib' -version = 'main' -source = 'github' diff --git a/examples/acceptance_tests/script_context/plutus.json b/examples/acceptance_tests/script_context/plutus.json deleted file mode 100644 index d0956347..00000000 --- a/examples/acceptance_tests/script_context/plutus.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "preamble": { - "title": "aiken-lang/acceptance_test_script_context", - "version": "0.0.0", - "plutusVersion": "v2", - "compiler": { - "name": "Aiken", - "version": "v1.0.31-alpha+6e4a16d" - } - }, - "validators": [ - { - "title": "basic.spend", - "datum": { - "title": "_datum", - "schema": { - "$ref": "#/definitions/Void" - } - }, - "redeemer": { - "title": "_redeemer", - "schema": { - "$ref": "#/definitions/Void" - } - }, - "compiledCode": "5903280100003232323232323223232232253330073253330083330083375e601a601c601c601c601c601c601c601c601c601c601c601c60146ea8c004c028dd5001260126d8799f58200000000000000000000000000000000000000000000000000000000000000000ff004a09444c94ccc024c94ccc028cdc3a400460166ea80044c94ccc02ccdd7980218069baa0014c0126d8799f58200000000000000000000000000000000000000000000000000000000000000000ff0013009375a6006601a6ea8004528180798061baa001163001300b375400626464a6660166464a6660200022c2a6660206026002264a66601c66ebcc018c040dd50009ba6300448202a35ae41c54ccc038cdd7980398081baa30073010375400298122d8799f581c11111111111111111111111111111111111111111111111111111111ff001533300e533300e300c300f3754600c60206ea8c01cc040dd50008a5014a22a66601c66ebcc00cc040dd5000a60103d879800013375e600a60206ea800530103d87a800014a029405280a5030120011637586002601c6ea8c014c038dd50031180898091809000899baf3002300d37546008601a6ea8014dd31800a40a8294094ccc02cc02400452f5bded8c0264646600200297adef6c6022533301100113301233760981014000374c00697adef6c60132323232533301233720910100002133016337609801014000374c00e00a2a66602466e3d22100002133016337609801014000374c00e00626602c66ec0dd48011ba600133006006003375660260066eb8c044008c054008c04c004c8cc0040052f5bded8c044a66602000226602266ec13001014000375000697adef6c60132323232533301133720910100002133015337609801014000375000e00a2a66602266e3d22100002133015337609801014000375000e00626602a66ec0dd48011ba800133006006003375a60240066eb8c040008c050008c0480048c03cc040c040c0400045281180718078008a502300d00114984d9594ccc014c00cc018dd50008a99980418039baa001149858594ccc00cc004c010dd50010a99980318029baa00214985858dc3a4000ae6955ceaab9e5573eae815d0aba201", - "hash": "759c4c40f04fe27a816fbe04c522ac00c710762e979ebe09ed276362" - }, - { - "title": "deploy.spend", - "datum": { - "title": "datum", - "schema": { - "$ref": "#/definitions/Data" - } - }, - "redeemer": { - "title": "_redeemer", - "schema": { - "$ref": "#/definitions/Data" - } - }, - "compiledCode": "5902520100003232323232323232222533300453330043375e00698103d879800013253330053323223253330093370e900018051baa001132533300a3370e900018059baa001132533300e001161325333333013001161616132533301030130031533300d3375e980106d8799f182aff0000413370e600e00c90020a5016375a0022c602000260186ea800458c038c02cdd50008b1919198008008019129998070008a6103d87a8000132323232533300f3372200e0042a66601e66e3c01c0084cdd2a40006602600297ae014c0103d87a80001330060060033010003375c601c004602400460200026e50dd9a6106d8799f182aff00300100122533300a0011480004cdc02400466004004601a0026eacc028c02cc02cc02cc02cc02cc02cc02cc02cc02cc02cc01cdd5180098039baa00213232533300a00116132533300b00116132533300932533300a3375e600a60186ea800530126d87a9f5820fcaa61fb85676101d9e3398a484674e71c45c3fd41b492682f3b0054f4cf3273ff0013375e601e60206020602060186ea800530122d8799f581ce37db487fbd58c45d059bcbf5cd6b1604d3bec16cf888f1395a4ebc4ff0014a0601c0062a66601266ebcc038c03cc02cdd5180298059baa0014c012ad8799fd8799fd8799f581c66666666666666666666666666666666666666666666666666666666ffffff00153330093370e900218051baa3004300b37540022944585280a50300d001300d0013758600260106ea8c008c020dd500191805980618060008a502300a00114a029309b2b2b9a5573aaae7955cfaba05742ae895d201", - "hash": "d593ff2c1db29ce9a9a392280895f03d00705203dc4a0ea15870a0b1" - }, - { - "title": "mint.mint", - "redeemer": { - "title": "redeemer", - "schema": { - "$ref": "#/definitions/Data" - } - }, - "compiledCode": "590300010000323232323232322253330033232323232533233009323232533300f3012002132533300d3005300e3754002266e3c008dd7180918079baa001163008300e37540142c6eb8c040004cc004004cc010c00cdd5980298061baa3007300c37540109110022533300e00114bd70099807980618080009980100118088008a999191980599912999806980298071baa002132533300e3005300f37540022c266e1cdd6980998081baa001483c850c8cc004004c94ccc03cc018c040dd50008a5eb7bdb1804dd5980a18089baa00132323300100130093756601660246ea8010894ccc0500045300103d87a800013232323253330153372200e0042a66602a66e3c01c0084c02ccc064dd3000a5eb80530103d87a80001330060060033756602c0066eb8c050008c060008c058004dd7180998081baa00322533301200114c103d87a800013232323253330133372291103666f6f00002153330133371e910103666f6f000021300933017375000297ae014c0103d87a8000133006006003375a60280066eb8c048008c058008c05000458c01cc034dd5004980418069baa009132323232533300f3007301037540022a66601e66ebc038c044c8cdd8180a800980a980b0009bac3014301137540022600c60046eacc010c044dd5180618089baa00d14a02c64660020026eacc010c044dd5180618089baa00d22533301300114c103d87a80001323253330123375e6026004601c60286ea80404c020cc058dd39980b18098011980b180a00125eb812f5c0266008008002602e004602a002600200244a66602200229000099b8048008cc008008c0500048c044c048c048c048c048c048c048c048c048c048004dd2a40006e1d200214a06e1d200014a046600400291010022323300100100322533300d00114bd6f7b630099191919299980719b910070021533300e3371e00e0042006200a26602466ec0dd48011ba6001330060060033756601e0066eb8c034008c044008c03c0048c02cc030c030c030c0300048c028c02c0048c024004526136565734aae7555cf2ab9f5740ae855d101", - "hash": "f557530d177449d0609a60cbe4f48b221c04a6ca7f9f235fcdc8c741" - }, - { - "title": "withdrawals.spend", - "datum": { - "title": "_datum", - "schema": { - "$ref": "#/definitions/Void" - } - }, - "redeemer": { - "title": "_redeemer", - "schema": { - "$ref": "#/definitions/Void" - } - }, - "compiledCode": "5902300100003232323232323223223225333006323232533300932533300a3370e900118059baa0011613370e6eb4c030c8cdd81808000980818088009bac300f300c3754002902a198009bab3002300b3754600660166ea80108cdd79805800a6126d8799fd8799f581c22222222222222222222222222222222222222222222222222222222ffff001533300932533300a3370e900118059baa0011613370e6eb4c030c8cdd81808000980818088009bac300f300c3754002900e198009bab3002300b3754600660166ea80108cdd79805800a60126d8799fd87a9f581cafddc16c18e7d8de379fb9aad39b3d1b5afd27603e5ebac818432a72ffff0013375e6e9cc8cc004004dd5980198061baa3004300c375400a44a66601c002297ae013300f300c3010001330020023011001374e6601a98126d8799fd8799f581c22222222222222222222222222222222222222222222222222222222ffff003300d4c126d8799fd87a9f581cafddc16c18e7d8de379fb9aad39b3d1b5afd27603e5ebac818432a72ffff004bd700a5014a044646600200200644a66601e002298103d87a800013232533300e300500213374a9000198091ba733012300f0023301230100024bd7025eb804cc010010004c04c008c0440048c034c038c038c038c038c038c0380048c0300045261365653330043370e900018029baa00115333007300637540022930b0b299980119b8748000c00cdd50008a99980298021baa001149858595cd2ab9d5573caae7d5d02ba157441", - "hash": "06f1f9df4be68a65cd55a921e3e7ec1eb4104906c53e0e564c726faa" - } - ], - "definitions": { - "Data": { - "title": "Data", - "description": "Any Plutus data." - }, - "Void": { - "title": "Unit", - "description": "The nullary constructor.", - "anyOf": [ - { - "dataType": "constructor", - "index": 0, - "fields": [] - } - ] - } - } -} \ No newline at end of file diff --git a/examples/acceptance_tests/script_context/v2/.gitignore b/examples/acceptance_tests/script_context/v2/.gitignore new file mode 100644 index 00000000..857abe49 --- /dev/null +++ b/examples/acceptance_tests/script_context/v2/.gitignore @@ -0,0 +1,2 @@ +*.cbor +*.log diff --git a/examples/acceptance_tests/script_context/README.md b/examples/acceptance_tests/script_context/v2/README.md similarity index 82% rename from examples/acceptance_tests/script_context/README.md rename to examples/acceptance_tests/script_context/v2/README.md index 237f30f4..2b04873b 100644 --- a/examples/acceptance_tests/script_context/README.md +++ b/examples/acceptance_tests/script_context/v2/README.md @@ -1,8 +1,8 @@ -# Script Context Tests +# V2 Script Context Tests -This project contains a few handcrafted validators and transactions whose sole -purpose is to test the interpretation of the `ScriptContext` from within an -Aiken's validators. +This project contains a few handcrafted Plutus V2 validators and transactions +whose sole purpose is to test the interpretation of the `ScriptContext` from +within an Aiken's validators. So validators are meant to work hand-in-hand with an associated context. Because we can't have fully static context (since they contain the validator diff --git a/examples/acceptance_tests/script_context/aiken.lock b/examples/acceptance_tests/script_context/v2/aiken.lock similarity index 61% rename from examples/acceptance_tests/script_context/aiken.lock rename to examples/acceptance_tests/script_context/v2/aiken.lock index a1284437..92b95b36 100644 --- a/examples/acceptance_tests/script_context/aiken.lock +++ b/examples/acceptance_tests/script_context/v2/aiken.lock @@ -13,4 +13,4 @@ requirements = [] source = "github" [etags] -"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1723158439, nanos_since_epoch = 196168000 }, "5e58899446492a704d0927a43299139856bef746e697b55895ba34206fa28452"] +"aiken-lang/stdlib@main" = [{ secs_since_epoch = 1723583483, nanos_since_epoch = 18378000 }, "5e58899446492a704d0927a43299139856bef746e697b55895ba34206fa28452"] diff --git a/examples/acceptance_tests/script_context/v2/aiken.toml b/examples/acceptance_tests/script_context/v2/aiken.toml new file mode 100644 index 00000000..3d679522 --- /dev/null +++ b/examples/acceptance_tests/script_context/v2/aiken.toml @@ -0,0 +1,10 @@ +name = "script_context/v2" +version = "0.0.0" +plutus = "v2" +license = "Apache-2.0" +description = "Aiken contracts for project 'script_context/v2'" + +[[dependencies]] +name = "aiken-lang/stdlib" +version = "main" +source = "github" diff --git a/examples/acceptance_tests/script_context/ctx/basic/inputs.cbor.template b/examples/acceptance_tests/script_context/v2/ctx/basic/inputs.cbor.template similarity index 100% rename from examples/acceptance_tests/script_context/ctx/basic/inputs.cbor.template rename to examples/acceptance_tests/script_context/v2/ctx/basic/inputs.cbor.template diff --git a/examples/acceptance_tests/script_context/ctx/basic/outputs.cbor.template b/examples/acceptance_tests/script_context/v2/ctx/basic/outputs.cbor.template similarity index 100% rename from examples/acceptance_tests/script_context/ctx/basic/outputs.cbor.template rename to examples/acceptance_tests/script_context/v2/ctx/basic/outputs.cbor.template diff --git a/examples/acceptance_tests/script_context/ctx/basic/tx.cbor.template b/examples/acceptance_tests/script_context/v2/ctx/basic/tx.cbor.template similarity index 100% rename from examples/acceptance_tests/script_context/ctx/basic/tx.cbor.template rename to examples/acceptance_tests/script_context/v2/ctx/basic/tx.cbor.template diff --git a/examples/acceptance_tests/script_context/ctx/basic/tx.diag.template b/examples/acceptance_tests/script_context/v2/ctx/basic/tx.diag.template similarity index 100% rename from examples/acceptance_tests/script_context/ctx/basic/tx.diag.template rename to examples/acceptance_tests/script_context/v2/ctx/basic/tx.diag.template diff --git a/examples/acceptance_tests/script_context/ctx/deploy/inputs.cbor.template b/examples/acceptance_tests/script_context/v2/ctx/deploy/inputs.cbor.template similarity index 100% rename from examples/acceptance_tests/script_context/ctx/deploy/inputs.cbor.template rename to examples/acceptance_tests/script_context/v2/ctx/deploy/inputs.cbor.template diff --git a/examples/acceptance_tests/script_context/ctx/deploy/outputs.cbor.template b/examples/acceptance_tests/script_context/v2/ctx/deploy/outputs.cbor.template similarity index 100% rename from examples/acceptance_tests/script_context/ctx/deploy/outputs.cbor.template rename to examples/acceptance_tests/script_context/v2/ctx/deploy/outputs.cbor.template diff --git a/examples/acceptance_tests/script_context/ctx/deploy/tx.cbor.template b/examples/acceptance_tests/script_context/v2/ctx/deploy/tx.cbor.template similarity index 100% rename from examples/acceptance_tests/script_context/ctx/deploy/tx.cbor.template rename to examples/acceptance_tests/script_context/v2/ctx/deploy/tx.cbor.template diff --git a/examples/acceptance_tests/script_context/ctx/deploy/tx.diag.template b/examples/acceptance_tests/script_context/v2/ctx/deploy/tx.diag.template similarity index 100% rename from examples/acceptance_tests/script_context/ctx/deploy/tx.diag.template rename to examples/acceptance_tests/script_context/v2/ctx/deploy/tx.diag.template diff --git a/examples/acceptance_tests/script_context/ctx/mint/inputs.cbor.template b/examples/acceptance_tests/script_context/v2/ctx/mint/inputs.cbor.template similarity index 100% rename from examples/acceptance_tests/script_context/ctx/mint/inputs.cbor.template rename to examples/acceptance_tests/script_context/v2/ctx/mint/inputs.cbor.template diff --git a/examples/acceptance_tests/script_context/ctx/mint/outputs.cbor.template b/examples/acceptance_tests/script_context/v2/ctx/mint/outputs.cbor.template similarity index 100% rename from examples/acceptance_tests/script_context/ctx/mint/outputs.cbor.template rename to examples/acceptance_tests/script_context/v2/ctx/mint/outputs.cbor.template diff --git a/examples/acceptance_tests/script_context/ctx/mint/tx.cbor.template b/examples/acceptance_tests/script_context/v2/ctx/mint/tx.cbor.template similarity index 100% rename from examples/acceptance_tests/script_context/ctx/mint/tx.cbor.template rename to examples/acceptance_tests/script_context/v2/ctx/mint/tx.cbor.template diff --git a/examples/acceptance_tests/script_context/ctx/mint/tx.diag.template b/examples/acceptance_tests/script_context/v2/ctx/mint/tx.diag.template similarity index 100% rename from examples/acceptance_tests/script_context/ctx/mint/tx.diag.template rename to examples/acceptance_tests/script_context/v2/ctx/mint/tx.diag.template diff --git a/examples/acceptance_tests/script_context/ctx/withdrawals/inputs.cbor.template b/examples/acceptance_tests/script_context/v2/ctx/withdrawals/inputs.cbor.template similarity index 100% rename from examples/acceptance_tests/script_context/ctx/withdrawals/inputs.cbor.template rename to examples/acceptance_tests/script_context/v2/ctx/withdrawals/inputs.cbor.template diff --git a/examples/acceptance_tests/script_context/ctx/withdrawals/outputs.cbor.template b/examples/acceptance_tests/script_context/v2/ctx/withdrawals/outputs.cbor.template similarity index 100% rename from examples/acceptance_tests/script_context/ctx/withdrawals/outputs.cbor.template rename to examples/acceptance_tests/script_context/v2/ctx/withdrawals/outputs.cbor.template diff --git a/examples/acceptance_tests/script_context/ctx/withdrawals/tx.cbor.template b/examples/acceptance_tests/script_context/v2/ctx/withdrawals/tx.cbor.template similarity index 91% rename from examples/acceptance_tests/script_context/ctx/withdrawals/tx.cbor.template rename to examples/acceptance_tests/script_context/v2/ctx/withdrawals/tx.cbor.template index fedf862b..dca960e7 100644 --- a/examples/acceptance_tests/script_context/ctx/withdrawals/tx.cbor.template +++ b/examples/acceptance_tests/script_context/v2/ctx/withdrawals/tx.cbor.template @@ -1 +1 @@ -84A80081825820000000000000000000000000000000000000000000000000000000000000000000018182581D60111111111111111111111111111111111111111111111111111111111A3B9ACA0002182A05A2581DE022222222222222222222222222222222222222222222222222222222182A581DF0AFDDC16C18E7D8DE379FB9AAD39B3D1B5AFD27603E5EBAC818432A720E0B5820FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D818258200000000000000000000000000000000000000000000000000000000000000000001082581D60000000000000000000000000000000000000000000000000000000001A3B9ACA001101A20582840000D87980821A000F42401A05F5E100840301D87980821A000F42401A05F5E1000682{{ VALIDATOR }}583D583B010000323232323232322253330054A22930B180080091129998030010A4C26600A6002600E0046660060066010004002AE695CDAAB9F5742AE881F5F6 +84A80081825820000000000000000000000000000000000000000000000000000000000000000000018182581D60111111111111111111111111111111111111111111111111111111111A3B9ACA0002182A05A2581DE022222222222222222222222222222222222222222222222222222222182A581DF0AFDDC16C18E7D8DE379FB9AAD39B3D1B5AFD27603E5EBAC818432A720E0B5820FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D818258200000000000000000000000000000000000000000000000000000000000000000001082581D60000000000000000000000000000000000000000000000000000000001A3B9ACA001101A20582840000D87980821A000F42401A05F5E100840300D87980821A000F42401A05F5E1000682{{ VALIDATOR }}583D583B010000323232323232322253330054A22930B180080091129998030010A4C26600A6002600E0046660060066010004002AE695CDAAB9F5742AE881F5F6 diff --git a/examples/acceptance_tests/script_context/ctx/withdrawals/tx.diag.template b/examples/acceptance_tests/script_context/v2/ctx/withdrawals/tx.diag.template similarity index 95% rename from examples/acceptance_tests/script_context/ctx/withdrawals/tx.diag.template rename to examples/acceptance_tests/script_context/v2/ctx/withdrawals/tx.diag.template index 133f5d3f..3086656d 100644 --- a/examples/acceptance_tests/script_context/ctx/withdrawals/tx.diag.template +++ b/examples/acceptance_tests/script_context/v2/ctx/withdrawals/tx.diag.template @@ -29,7 +29,7 @@ { 5: [ [0, 0, 121([]), [1000000, 100000000]] - , [3, 1, 121([]), [1000000, 100000000]] + , [3, 0, 121([]), [1000000, 100000000]] ] , 6: [ {{ VALIDATOR }}, h'583b010000323232323232322253330054a22930b180080091129998030010a4c26600a6002600e0046660060066010004002ae695cdaab9f5742ae881' ] diff --git a/examples/acceptance_tests/script_context/v2/plutus.json b/examples/acceptance_tests/script_context/v2/plutus.json new file mode 100644 index 00000000..6dae6d6e --- /dev/null +++ b/examples/acceptance_tests/script_context/v2/plutus.json @@ -0,0 +1,94 @@ +{ + "preamble": { + "title": "script_context/v2", + "description": "Aiken contracts for project 'script_context/v2'", + "version": "0.0.0", + "plutusVersion": "v2", + "compiler": { + "name": "Aiken", + "version": "v1.0.31-alpha+fe5c565" + }, + "license": "Apache-2.0" + }, + "validators": [ + { + "title": "basic.spend", + "datum": { + "title": "_datum", + "schema": { + "$ref": "#/definitions/Void" + } + }, + "redeemer": { + "title": "_redeemer", + "schema": { + "$ref": "#/definitions/Void" + } + }, + "compiledCode": "5903fb01000032323232323232323232322533333300c00115332330053001300737540042a66601260106ea8008494cccccc03800454ccc018c008c020dd50008a99980518049baa0011253330073253330083330083375e601c601e601e601e601e601e601e601e601e601e601e601e60166ea8c004c02cdd500126126d8799f58200000000000000000000000000000000000000000000000000000000000000000ff004a09444c94ccc024c94ccc028cdc3a400460186ea80044c94ccc02ccdd7980218071baa0014c0126d8799f58200000000000000000000000000000000000000000000000000000000000000000ff0013007375a6006601c6ea8004528180818069baa001153300b4911c73637269707420707572706f73652069736e277420275370656e642700163001300c375400626464a6660166464a6660220022a6601c92011c756e6578706563746564206e756d626572206f66206f7574707574730016153330113014001132533300e3375e600c60226ea8004dd318022410151ad720e2a66601c66ebcc01cc044dd5180398089baa0014c0122d8799f581c11111111111111111111111111111111111111111111111111111111ff001533300e533300e300a30103754600c60226ea8c01cc044dd50008a5014a22a66601c66ebcc00cc044dd5000a60103d879800013375e600a60226ea800530103d87a800014a029405280a503013001153300e4911c756e6578706563746564206e756d626572206f66206f757470757473001637586002601e6ea8c014c03cdd50031180918099809800899baf3002300e37546008601c6ea8014dd31800a40a8294094ccc02cc01c00452f5bded8c0264646600200297adef6c6022533301200113301333760981014000374c00697adef6c60132323232533301233720910100002133017337609801014000374c00e00a2a66602466e3d22100002133017337609801014000374c00e00626602e66ec0dd48011ba600133006006003375660280066eb8c048008c058008c050004c8cc0040052f5bded8c044a66602200226602466ec13001014000375000697adef6c60132323232533301133720910100002133016337609801014000375000e00a2a66602266e3d22100002133016337609801014000375000e00626602c66ec0dd48011ba800133006006003375a60260066eb8c044008c054008c04c0048c040c044c044c0440045281180798080008a502300e001149854cc0212411856616c696461746f722072657475726e65642066616c73650013656004004004004004004004370e90000018018018018018a99801a4810f5f72656465656d65723a20566f6964001615330024910c5f646174756d3a20566f696400165734ae7155ceaab9e5573eae815d0aba257481", + "hash": "1c6c13a9a56cbcb9ed18c312c9e9e9996b0545b7230b7cf81cbe012d" + }, + { + "title": "deploy.spend", + "datum": { + "title": "datum", + "schema": { + "$ref": "#/definitions/Data" + } + }, + "redeemer": { + "title": "_redeemer", + "schema": { + "$ref": "#/definitions/Data" + } + }, + "compiledCode": "59039801000032323232323232323232222533300553330053375e00698103d8798000132533300633232232533300a3370e900018061baa00113253333330130011533300b3370e900018069baa001132533301000100b132533333301500100c00c00c132533301230150031533300e3375e980106d8799f182aff0000413370e600e00c90020a5000d375a0020186024002601c6ea8004028028028028028c040c034dd50008a99805a495865787065637420536f6d6528646174756d29203d0a20202020646963742e67657428646174756d732c20626c616b6532625f323536286275696c74696e2e73657269616c6973655f64617461286d795f646174756d292929001632323300100100322533301000114c0103d87a800013232323253330103372200e0042a66602066e3c01c0084cdd2a40006602a00297ae014c0103d87a80001330060060033012003375c6020004602800460240026e50dd9a6106d8799f182aff00300100122533300c0011480004cdc02400466004004601e0026eacc030c034c034c034c034c034c034c034c034c034c034c024dd5180098049baa00213232533300c00115330094901316578706563746564207472616e73616374696f6e20746f206861766520286174206c65617374292032206f7574707574730016132533300d001153300a4901316578706563746564207472616e73616374696f6e20746f206861766520286174206c65617374292032206f7574707574730016132533300a32533300b3375e600a601c6ea800530126d87a9f5820fcaa61fb85676101d9e3398a484674e71c45c3fd41b492682f3b0054f4cf3273ff0013375e6022602460246024601c6ea800530122d8799f581ce37db487fbd58c45d059bcbf5cd6b1604d3bec16cf888f1395a4ebc4ff0014a060200062a66601466ebcc040c044c034dd5180298069baa0014c012ad8799fd8799fd8799f581c66666666666666666666666666666666666666666666666666666666ffffff001533300a3370e900218061baa3004300d3754002294454cc02d24115657870656374656420696e6c696e6520646174756d001614a02940c03c004c03c004dd6180098051baa3002300a37540064601a601c601c00229408c0300045280a4c2a6600c92011856616c696461746f722072657475726e65642066616c73650013656153300249011d65787065637420646174756d3a204d79446174756d203d20646174756d00165734ae7155ceaab9e5573eae815d0aba257481", + "hash": "66a5272eb58aed0097083185588ef1e8b3888a3bc2e03c061f09c898" + }, + { + "title": "mint.mint", + "redeemer": { + "title": "redeemer", + "schema": { + "$ref": "#/definitions/Data" + } + }, + "compiledCode": "590496010000323232323232323232225333004323232323253323300a3232533301000100b13253330113014002132533300e300530103754002266e3c008dd7180a18089baa001153300f49124657870656374204d696e7428706f6c6963795f696429203d206374782e707572706f736500163008301037540140186eb8c048004cc004004cc010c00cdd5980298071baa3007300e375401091010022533301000114bd70099808980718090009980100118098008a999191980619912999807180298081baa002132533300f3005301137540022a6602092010f746f6b656e206e6f7420666f756e64001613370e6eb4c054c048dd5000a41e428646600200264a666020600c60246ea800452f5bded8c026eacc058c04cdd500099191980080098049bab300b3014375400844a66602c002298103d87a800013232323253330163372200e0042a66602c66e3c01c0084c02ccc06cdd3000a5eb80530103d87a8000133006006003375660300066eb8c058008c068008c060004dd7180a98091baa00322533301400114c103d87a800013232323253330143372291103666f6f00002153330143371e910103666f6f000021300933019375000297ae014c0103d87a8000133006006003375a602c0066eb8c050008c060008c05800454cc03d24120657870656374204d696e7428706f6c6963795f696429203d20707572706f736500163007300f37540126010601e6ea80244c8c8c8c94ccc040c01cc048dd50008a99980819baf00e30133233760602e002602e60300026eb0c058c04cdd50008980318011bab300430133754601860266ea80345280a99808a496b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64286374782e7472616e73616374696f6e2e72656465656d6572732c20666e286b7629207b206b762e317374203d3d206374782e707572706f7365207d29001632330010013756600860266ea8c030c04cdd500691299980a8008a6103d87a80001323253330133375e602a004601c602c6ea80404c020cc060dd39980c180a8011980c180b00125eb812f5c02660080080026032004602e002600200244a66602600229000099b8048008cc008008c0580048c04cc050c050c050c050c050c050c050c050c050004dd2a40006e1d200214a06e1d200014a046600400291010022323300100100322533300f00114bd6f7b630099191919299980799b910070021533300f3371e00e0042006200a26602866ec0dd48011ba600133006006003375660220066eb8c03c008c04c008c0440048c034c038c038c038c0380048c030c0340048c02c00452615330054911856616c696461746f722072657475726e65642066616c736500136561533002490189657870656374205b6d795f706f6c6963795f69645d203d0a202020206374782e7472616e73616374696f6e2e6d696e740a2020202020207c3e2076616c75652e66726f6d5f6d696e7465645f76616c75650a2020202020207c3e2076616c75652e776974686f75745f6c6f76656c6163650a2020202020207c3e2076616c75652e706f6c696369657300165734ae7155ceaab9e5573eae815d0aba21", + "hash": "8372367de2b0391b1bec0489dc72cb65de1a791f4e9712b9149d6392" + }, + { + "title": "withdrawals.spend", + "datum": { + "title": "_datum", + "schema": { + "$ref": "#/definitions/Void" + } + }, + "redeemer": { + "title": "_redeemer", + "schema": { + "$ref": "#/definitions/Void" + } + }, + "compiledCode": "5902de01000032323232323232323232322533333300c001153330043370e900018031baa001153330083007375400224a66666601a0022a66600a66e1d2000300737540022a66601260106ea8004494ccc018c8c8c94ccc024c94ccc028cdc3a400460186ea800454cc02d2411c616c6963652773207769746864726177616c206e6f7420666f756e64001613370e6eb4c034c8cdd81808800980898090009bac3010300d3754002902a198009bab3002300c3754600660186ea80108cdd79806000a6126d8799fd8799f581c22222222222222222222222222222222222222222222222222222222ffff001533300932533300a3370e900118061baa001153300b49011a626f622773207769746864726177616c206e6f7420666f756e64001613370e6eb4c034c8cdd81808800980898090009bac3010300d3754002900e198009bab3002300c3754600660186ea80108cdd79806000a6126d8799fd87a9f581cafddc16c18e7d8de379fb9aad39b3d1b5afd27603e5ebac818432a72ffff0013375e6e9cc8cc004004dd5980198069baa3004300d375400a44a66601e002297ae0133010300d3011001330020023012001374e6601c98126d8799fd87a9f581cafddc16c18e7d8de379fb9aad39b3d1b5afd27603e5ebac818432a72ffff003300e4c126d8799fd8799f581c22222222222222222222222222222222222222222222222222222222ffff004bd700a5014a044646600200200644a666020002298103d87a800013232533300e300500213374a9000198099ba73301330100023301330110024bd7025eb804cc010010004c050008c0480048c038c03cc03cc03cc03cc03cc03c0048c03400452615330074911856616c696461746f722072657475726e65642066616c73650013656003003003003003003003003003003003003153300349010f5f72656465656d65723a20566f6964001615330024910c5f646174756d3a20566f696400165734ae7155ceaab9e5573eae815d0aba257481", + "hash": "4f44caf93e36ee884b6d03b1e1c93bf8cda516fd39f7113823508571" + } + ], + "definitions": { + "Data": { + "title": "Data", + "description": "Any Plutus data." + }, + "Void": { + "title": "Unit", + "description": "The nullary constructor.", + "anyOf": [ + { + "dataType": "constructor", + "index": 0, + "fields": [] + } + ] + } + } +} \ No newline at end of file diff --git a/examples/acceptance_tests/script_context/test.sh b/examples/acceptance_tests/script_context/v2/test.sh similarity index 86% rename from examples/acceptance_tests/script_context/test.sh rename to examples/acceptance_tests/script_context/v2/test.sh index 82381740..1213337b 100755 --- a/examples/acceptance_tests/script_context/test.sh +++ b/examples/acceptance_tests/script_context/v2/test.sh @@ -12,6 +12,8 @@ if [ -z $TITLE ]; then exit 1 fi +AIKEN=${2:-"cargo run -r --quiet --"} + if ! command -v jq &> /dev/null then echo "\033[1mjq\033[0m missing from system but required." @@ -24,7 +26,7 @@ then exit 1 fi -cargo run -r --quiet -- build +$AIKEN build --filter-traces all -t verbose if [ $? -ne 0 ]; then exit $? fi @@ -39,4 +41,7 @@ cp ctx/$TITLE/inputs.cbor.template ctx/$TITLE/inputs.cbor sed "s/{{ VALIDATOR_HASH }}/$VALIDATOR_HASH/" ctx/$TITLE/outputs.cbor.template > ctx/$TITLE/outputs.cbor sed "s/{{ VALIDATOR }}/$VALIDATOR/" ctx/$TITLE/tx.cbor.template | sed "s/{{ VALIDATOR_HASH }}/$VALIDATOR_HASH/" > ctx/$TITLE/tx.cbor -cargo run -r --quiet -- tx simulate ctx/$TITLE/tx.cbor ctx/$TITLE/inputs.cbor ctx/$TITLE/outputs.cbor +$AIKEN tx simulate \ + ctx/$TITLE/tx.cbor \ + ctx/$TITLE/inputs.cbor \ + ctx/$TITLE/outputs.cbor diff --git a/examples/acceptance_tests/script_context/validators/basic.ak b/examples/acceptance_tests/script_context/v2/validators/basic.ak similarity index 100% rename from examples/acceptance_tests/script_context/validators/basic.ak rename to examples/acceptance_tests/script_context/v2/validators/basic.ak diff --git a/examples/acceptance_tests/script_context/validators/deploy.ak b/examples/acceptance_tests/script_context/v2/validators/deploy.ak similarity index 100% rename from examples/acceptance_tests/script_context/validators/deploy.ak rename to examples/acceptance_tests/script_context/v2/validators/deploy.ak diff --git a/examples/acceptance_tests/script_context/validators/mint.ak b/examples/acceptance_tests/script_context/v2/validators/mint.ak similarity index 100% rename from examples/acceptance_tests/script_context/validators/mint.ak rename to examples/acceptance_tests/script_context/v2/validators/mint.ak diff --git a/examples/acceptance_tests/script_context/validators/withdrawals.ak b/examples/acceptance_tests/script_context/v2/validators/withdrawals.ak similarity index 98% rename from examples/acceptance_tests/script_context/validators/withdrawals.ak rename to examples/acceptance_tests/script_context/v2/validators/withdrawals.ak index c2931005..a307f114 100644 --- a/examples/acceptance_tests/script_context/validators/withdrawals.ak +++ b/examples/acceptance_tests/script_context/v2/validators/withdrawals.ak @@ -31,7 +31,7 @@ validator { None -> fail @"bob's withdrawal not found" Some(value) -> value.2nd == 14 }, - list.map(ctx.transaction.withdrawals, fn(kv) { kv.1st }) == [alice, bob], + list.map(ctx.transaction.withdrawals, fn(kv) { kv.1st }) == [bob, alice], } } } diff --git a/examples/acceptance_tests/script_context/v3/.gitignore b/examples/acceptance_tests/script_context/v3/.gitignore new file mode 100644 index 00000000..fc56b8c9 --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/.gitignore @@ -0,0 +1,9 @@ +# Aiken compilation artifacts +artifacts/ +# Aiken's project working directory +build/ +# Aiken's default documentation export +docs/ +*.cbor +!ctx/inputs.cbor +*.log diff --git a/examples/acceptance_tests/script_context/v3/README.md b/examples/acceptance_tests/script_context/v3/README.md new file mode 100644 index 00000000..802979f6 --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/README.md @@ -0,0 +1,209 @@ +# V3 Script Context Tests + +This project contains a few handcrafted Plutus V3 validators and transactions +whose sole purpose is to test the interpretation of the `ScriptContext` from +within an Aiken's validators. + +So validators are meant to work hand-in-hand with an associated context. +Because we can't have fully static context (since they contain the validator +and its hash), we define _templates_. + +Everything is a bit clunky, but steps have been captured in a `test.sh` script +for convenience. The test still assumes a few things. For any +`VALIDATOR_GROUP`: + +- There's a `ctx/{VALIDATOR_GROUP}/tx.template` and + `ctx/{VALIDATOR_GROUP}/resolved_inputs.template` respectively. + +- There's a corresponding validator `validators/{VALIDATOR_GROUP}.ak` + +- Templates may reference variables using a mustache-template-like syntax `{{ ... }}`. + Provided variables are: + - `{VALIDATOR_GROUP}.{VALIDATOR_TITLE}.hash` + - `{VALIDATOR_GROUP}.{VALIDATOR_TITLE}.cbor` + + Where `VALIDATOR_TITLE` corresponds to the validator Aiken's name. + +## How to use + +``` +./test.sh VALIDATOR_GROUP +``` + +> ![TIP] +> By default, this recompiles the project in --release mode, which can be long +> when iterating / testing. You can provide a binary to use as a second +> argument. For a dev build, just do: +> +> ``` +> ./test.sh VALIDATOR_GROUP "cargo run --" +> ``` + +## Test Coverage + +- Purpose + - [x] spend + - [x] mint + - [x] withdraw + - [x] publish + - [x] voting + - [x] proposing + +- Transaction body + - [x] inputs + - reference inputs + - [x] none + - [x] some + - outputs + - [x] none + - [x] some + - [x] fee + - [x] mint + - certificates + - [x] none + - some + - Register credential + - [x] no deposit + - [x] with deposit + - Unregister credential + - [x] no deposit + - [x] with deposit + - [x] Delegate + - [x] Register & delegate credential + - [x] Register drep + - [x] Unregister drep + - [x] Update drep + - [x] Register pool + - [x] Retire pool + - [x] Delegate CC + - [x] Retire CC + - withdrawals + - [x] none + - [x] some + - [x] validity range + - extra signatories + - [x] none + - [x] some + - [x] redeemers + - [x] datums + - votes + - [x] none + - [x] some + - proposal procedures + - [x] none + - [x] some + - current treasury + - [x] with + - [x] without + - treasury donation + - [x] with + - [x] without + +- Address + - [x] type-0 (key | key) + - [x] type-1 (script | key) + - [x] type-2 (key | script) + - [x] type-3 (script | script) + - [x] type-4 (key | ptr) + - [x] type-5 (script | ptr) + - [x] type-6 (key | ø) + - [x] type-7 (key | ø) + +- Value + - [x] only ada + - [x] multi-assets + +- Output datum + - [x] none + - [x] hash + - [x] inline + +- Output script + - [x] none + - [x] inline + +- Governance Action + - parameter change + - [x] with action id + - [x] without action id + - hardfork initiation + - [x] with action id + - [x] without action id + - treasuryWithdrawals + - [x] with constitution + - [x] without constitution + - no confidence + - [x] with action id + - [x] without action id + - update committee + - [x] with action id + - [x] without action id + - new constitution + - [x] with action id + - [x] without action id + - [x] info action + +- Vote + - [x] No + - [x] Yes + - [x] Abstain + +- Voter + - [x] CC + - [x] DRep + - [x] SPO + +- ChangedParameters + - [x] txFeePerByte + - [x] txFeeFixed + - [x] maxBlockBodySize + - [x] maxTxSize + - [x] maxBlockHeaderSize + - [x] stakeAddressDeposit + - [x] stakePoolDeposit + - [x] poolRetireMaxEpoch + - [x] stakePoolTargetNum + - [x] poolPledgeInfluence + - [x] monetaryExpansion + - [x] treasuryCut + - [x] minPoolCost + - [x] utxoCostPerByte + - [ ] costModels + - [x] executionUnitPrices + - [x] maxTxExecutionUnits + - [x] maxBlockExecutionUnits + - [x] maxValueSize + - [x] collateralPercentage + - [x] maxCollateralInputs + - [x] poolVotingThresholds + - [x] dRepVotingThresholds + - [x] committeeMinSize + - [x] committeeMaxTermLength + - [x] govActionLifetime + - [x] govActionDeposit + - [x] dRepDeposit + - [x] dRepActivity + - [x] minFeeRefScriptCostPerByte + +- Constitution + - [x] with guardrail script + - [x] without guardrail script + +- Credential + - [x] key + - [x] script + +- Delegatee + - [x] pool + - [x] drep + - [x] pool + drep + +- DRep + - [x] key + - [x] script + - [x] abstain + - [x] no confidence + +- Boundary + - [x] closed + - [x] open diff --git a/examples/acceptance_tests/script_context/v3/aiken.lock b/examples/acceptance_tests/script_context/v3/aiken.lock new file mode 100644 index 00000000..c90f4933 --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/aiken.lock @@ -0,0 +1,16 @@ +# This file was generated by Aiken +# You typically do not need to edit this file + +[[requirements]] +name = "aiken-lang/stdlib" +version = "v2" +source = "github" + +[[packages]] +name = "aiken-lang/stdlib" +version = "v2" +requirements = [] +source = "github" + +[etags] +"aiken-lang/stdlib@v2" = [{ secs_since_epoch = 1723583491, nanos_since_epoch = 208977000 }, "cdbbce58b61deb385e7ea787a2e0fc2dc8fe94db9999e0e6275bc9c70e5796be"] diff --git a/examples/acceptance_tests/script_context/v3/aiken.toml b/examples/acceptance_tests/script_context/v3/aiken.toml new file mode 100644 index 00000000..0a73bc08 --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/aiken.toml @@ -0,0 +1,11 @@ +name = "script_context/v3" +version = "0.0.0" +compiler = "v1.0.31-alpha" +plutus = "v3" +license = "Apache-2.0" +description = "End-to-end testing of standard lib script context, for Plutus v3" + +[[dependencies]] +name = "aiken-lang/stdlib" +version = "v2" +source = "github" diff --git a/examples/acceptance_tests/script_context/v3/ctx/certificates/resolved_inputs.template b/examples/acceptance_tests/script_context/v3/ctx/certificates/resolved_inputs.template new file mode 100644 index 00000000..dc99bdb5 --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/ctx/certificates/resolved_inputs.template @@ -0,0 +1,5 @@ +[ + { 0: h'6000000000000000000000000000000000000000000000000000000000' + , 1: 1000000 + } +] diff --git a/examples/acceptance_tests/script_context/v3/ctx/certificates/tx.template b/examples/acceptance_tests/script_context/v3/ctx/certificates/tx.template new file mode 100644 index 00000000..8e96ec3d --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/ctx/certificates/tx.template @@ -0,0 +1,118 @@ +[ + { 0: + [ [h'0000000000000000000000000000000000000000000000000000000000000000', 0] + ] + + , 1: + [] + + , 4: + [ [0, [1, h'22222222222222222222222222222222222222222222222222222222' ] ] + , [0, [0, h'00000000000000000000000000000000000000000000000000000000' ] ] + , [1, [0, h'00000000000000000000000000000000000000000000000000000000' ] ] + , [ 3 + , h'11111111111111111111111111111111111111111111111111111111' + , h'9999999999999999999999999999999999999999999999999999999999999999' + , 1000000 + , 340 + , 30([1, 100]) + , h'E000000000000000000000000000000000000000000000000000000000' + , 258([]) + , [] + , null + ] + , [ 4 + , h'11111111111111111111111111111111111111111111111111111111' + , 1337 + ] + , [ 7 + , [0, h'00000000000000000000000000000000000000000000000000000000' ] + , 3000000 + ] + , [ 8 + , [0, h'00000000000000000000000000000000000000000000000000000000' ] + , 3000000 + ] + , [ 9 + , [0, h'00000000000000000000000000000000000000000000000000000000' ] + , [0, h'00000000000000000000000000000000000000000000000000000000' ] + ] + , [ 9 + , [0, h'00000000000000000000000000000000000000000000000000000000' ] + , [1, h'00000000000000000000000000000000000000000000000000000000' ] + ] + , [ 9 + , [0, h'00000000000000000000000000000000000000000000000000000000' ] + , [ 2 ] + ] + , [ 9 + , [0, h'00000000000000000000000000000000000000000000000000000000' ] + , [ 3 ] + ] + , [ 10 + , [0, h'00000000000000000000000000000000000000000000000000000000' ] + , h'11111111111111111111111111111111111111111111111111111111' + , [ 3 ] + ] + , [ 11 + , [0, h'00000000000000000000000000000000000000000000000000000000' ] + , h'11111111111111111111111111111111111111111111111111111111' + , 3000000 + ] + , [ 12 + , [0, h'00000000000000000000000000000000000000000000000000000000' ] + , [ 3 ] + , 3000000 + ] + , [ 13 + , [0, h'00000000000000000000000000000000000000000000000000000000' ] + , h'11111111111111111111111111111111111111111111111111111111' + , [ 3 ] + , 3000000 + ] + , [ 14 + , [0, h'00000000000000000000000000000000000000000000000000000000' ] + , [0, h'22222222222222222222222222222222222222222222222222222222' ] + ] + , [ 15 + , [0, h'00000000000000000000000000000000000000000000000000000000' ] + , null + ] + , [ 16 + , [0, h'00000000000000000000000000000000000000000000000000000000' ] + , 3000000 + , null + ] + , [ 17 + , [0, h'00000000000000000000000000000000000000000000000000000000' ] + , 3000000 + ] + , [ 18 + , [0, h'00000000000000000000000000000000000000000000000000000000' ] + , null + ] + , [ 2 + , [ 1 + , h'{{ certificates.script.hash }}' + ] + , h'11111111111111111111111111111111111111111111111111111111' + ] + ] + + , 2: 42 + + , 21: 10000000 + + , 22: 14 + + }, + + { 5: [[2, 20, 121([]), [1000000, 100000000]]] + + , 7: [h'{{ certificates.script.cbor }}'] + }, + + true, + + null +] diff --git a/examples/acceptance_tests/script_context/v3/ctx/inputs.cbor b/examples/acceptance_tests/script_context/v3/ctx/inputs.cbor new file mode 100644 index 00000000..e7f75b49 --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/ctx/inputs.cbor @@ -0,0 +1 @@ +81825820000000000000000000000000000000000000000000000000000000000000000000 diff --git a/examples/acceptance_tests/script_context/v3/ctx/mint/resolved_inputs.template b/examples/acceptance_tests/script_context/v3/ctx/mint/resolved_inputs.template new file mode 100644 index 00000000..dc99bdb5 --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/ctx/mint/resolved_inputs.template @@ -0,0 +1,5 @@ +[ + { 0: h'6000000000000000000000000000000000000000000000000000000000' + , 1: 1000000 + } +] diff --git a/examples/acceptance_tests/script_context/v3/ctx/mint/tx.template b/examples/acceptance_tests/script_context/v3/ctx/mint/tx.template new file mode 100644 index 00000000..1e54fcc7 --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/ctx/mint/tx.template @@ -0,0 +1,77 @@ +[ + { 0: + [ [h'0000000000000000000000000000000000000000000000000000000000000000', 0] + ] + + , 1: + [ { 0: h'6000000000000000000000000000000000000000000000000000000000' + , 1: 1000000 + , 2: [0, h'923918e403bf43c34b4ef6b48eb2ee04babed17320d8d1b9ff9ad086e86f44ec'] + } + , { 0: h'000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' + , 1: + [ 1000000 + , { h'{{ mint.mint_1.hash }}': { h'74756e61': 100000000000000 } + , h'{{ mint.mint_2.hash }}': { h'61696b656e': 42 } + } + ] + } + , { 0: h'100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' + , 1: + [ 1000000 + , { h'{{ mint.mint_2.hash }}': { h'63617264616e6f': 1 } + } + ] + , 3: 24(h'82034463666F6F') + } + ] + + , 2: 42 + + , 9: + { h'{{ mint.mint_1.hash }}': + { h'74756e61': 100000000000000 + } + , h'{{ mint.mint_2.hash }}': + { h'63617264616e6f': 1 + , h'61696b656e': -14 + } + } + + , 11: h'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' + + , 13: + [ [h'0000000000000000000000000000000000000000000000000000000000000000', 0] + ] + + , 16: + [ h'6000000000000000000000000000000000000000000000000000000000', 1000000000 + ] + + , 17: 1 + + , 18: + [ [h'0000000000000000000000000000000000000000000000000000000000000000', 0] + ] + }, + + { 5: + [ [1, 0, 121([]), [1000000, 100000000]] + , [1, 1, 42, [1000000, 100000000]] + ] + + , 4: + [ 121([]) + ] + + , 7: + [ h'{{ mint.mint_1.cbor }}' + , h'{{ mint.mint_2.cbor }}' + ] + + }, + + true, + + null +] diff --git a/examples/acceptance_tests/script_context/v3/ctx/proposing_all/resolved_inputs.template b/examples/acceptance_tests/script_context/v3/ctx/proposing_all/resolved_inputs.template new file mode 100644 index 00000000..dc99bdb5 --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/ctx/proposing_all/resolved_inputs.template @@ -0,0 +1,5 @@ +[ + { 0: h'6000000000000000000000000000000000000000000000000000000000' + , 1: 1000000 + } +] diff --git a/examples/acceptance_tests/script_context/v3/ctx/proposing_all/tx.template b/examples/acceptance_tests/script_context/v3/ctx/proposing_all/tx.template new file mode 100644 index 00000000..afb4c438 --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/ctx/proposing_all/tx.template @@ -0,0 +1,122 @@ +[ + { 0: + [ [h'0000000000000000000000000000000000000000000000000000000000000000', 0] + ] + + , 1: + [] + + , 2: 42 + + , 20: 258( + [ + [ 2000000 + , h'F000000000000000000000000000000000000000000000000000000000' + , [ 1, null, [ 10, 0 ] ] + , [ "https://aiken-lang.org" + , h'0000000000000000000000000000000000000000000000000000000000000000' + ] + ] + + , [ 2000000 + , h'F000000000000000000000000000000000000000000000000000000000' + , [ 1, [ h'0000000000000000000000000000000000000000000000000000000000000000', 0 ] , [ 11, 0 ] ] + , [ "https://aiken-lang.org" + , h'0000000000000000000000000000000000000000000000000000000000000000' + ] + ] + + , [ 2000000 + , h'F000000000000000000000000000000000000000000000000000000000' + , [ 2 + , { h'E011111111111111111111111111111111111111111111111111111111': 1000000 } + , null + ] + , [ "https://aiken-lang.org" + , h'0000000000000000000000000000000000000000000000000000000000000000' + ] + ] + + , [ 2000000 + , h'F000000000000000000000000000000000000000000000000000000000' + , [ 2 + , { h'E022222222222222222222222222222222222222222222222222222222': 1000000 } + , h'{{ proposing_all.guardrails.hash }}' + ] + , [ "https://aiken-lang.org" + , h'0000000000000000000000000000000000000000000000000000000000000000' + ] + ] + + , [ 2000000 + , h'F000000000000000000000000000000000000000000000000000000000' + , [ 3, null ] + , [ "https://aiken-lang.org" + , h'0000000000000000000000000000000000000000000000000000000000000000' + ] + ] + + , [ 2000000 + , h'F000000000000000000000000000000000000000000000000000000000' + , [ 4 + , null + , [ [0, h'00000000000000000000000000000000000000000000000000000000'] ] + , { [0, h'00000000000000000000000000000000000000000000000000000000']: 500 } + , 30([1, 2]) + ] + , [ "https://aiken-lang.org" + , h'0000000000000000000000000000000000000000000000000000000000000000' + ] + ] + + , [ 2000000 + , h'F000000000000000000000000000000000000000000000000000000000' + , [ 5 + , null + , [ [ "https://constitution.cardano.org" + , h'0000000000000000000000000000000000000000000000000000000000000000' + ] + , null + ] + ] + , [ "https://aiken-lang.org" + , h'0000000000000000000000000000000000000000000000000000000000000000' + ] + ] + + , [ 2000000 + , h'F000000000000000000000000000000000000000000000000000000000' + , [ 5 + , null + , [ [ "https://constitution.cardano.org" + , h'0000000000000000000000000000000000000000000000000000000000000000' + ] + , h'00000000000000000000000000000000000000000000000000000000' + ] + ] + , [ "https://aiken-lang.org" + , h'0000000000000000000000000000000000000000000000000000000000000000' + ] + ] + + , [ 2000000 + , h'E000000000000000000000000000000000000000000000000000000000' + , [ 6 ] + , [ "https://aiken-lang.org" + , h'0000000000000000000000000000000000000000000000000000000000000000' + ] + ] + ] + ) + }, + + { 5: [[5, 3, 121([]), [1000000, 100000000]]] + + , 7: [h'{{ proposing_all.guardrails.cbor }}'] + }, + + true, + + null +] + diff --git a/examples/acceptance_tests/script_context/v3/ctx/proposing_pparams/resolved_inputs.template b/examples/acceptance_tests/script_context/v3/ctx/proposing_pparams/resolved_inputs.template new file mode 100644 index 00000000..dc99bdb5 --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/ctx/proposing_pparams/resolved_inputs.template @@ -0,0 +1,5 @@ +[ + { 0: h'6000000000000000000000000000000000000000000000000000000000' + , 1: 1000000 + } +] diff --git a/examples/acceptance_tests/script_context/v3/ctx/proposing_pparams/tx.template b/examples/acceptance_tests/script_context/v3/ctx/proposing_pparams/tx.template new file mode 100644 index 00000000..82d5fda0 --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/ctx/proposing_pparams/tx.template @@ -0,0 +1,83 @@ +[ + { 0: + [ [h'0000000000000000000000000000000000000000000000000000000000000000', 0] + ] + + , 1: + [] + + , 2: 42 + + , 20: 258( + [ + [ 2000000 + , h'F000000000000000000000000000000000000000000000000000000000' + , [ 0 + , null + , { 0: 44 + , 1: 155381 + , 7: 18 + , 8: 500 + , 9: 30([3, 10]) + , 10: 30([3, 1000]) + , 11: 30([2, 10]) + , 2: 90112 + , 3: 16384 + , 4: 1100 + , 5: 2000000 + , 6: 500000000 + , 16: 340 + , 17: 4310 + , 19: [30([577, 1000]), 30([721, 1000000])] + , 20: [14000000, 10000000000] + , 21: [62000000, 20000000000] + , 22: 5000 + , 23: 150 + , 24: 3 + , 25: + [ 30([51, 100]) + , 30([52, 100]) + , 30([53, 100]) + , 30([54, 100]) + , 30([55, 100]) + ] + , 26: + [ 30([67, 100]) + , 30([67, 100]) + , 30([60, 100]) + , 30([75, 100]) + , 30([60, 100]) + , 30([67, 100]) + , 30([67, 100]) + , 30([67, 100]) + , 30([75, 100]) + , 30([67, 100]) + ] + , 27: 7 + , 28: 146 + , 29: 6 + , 30: 100000000000 + , 31: 500000000 + , 32: 20 + , 33: 30([15, 1]) + } + , h'{{ proposing_pparams.guardrails.hash }}' + ] + , [ "https://aiken-lang.org" + , h'0000000000000000000000000000000000000000000000000000000000000000' + ] + ] + ] + ) + }, + + { 5: [[5, 0, 121([]), [1000000, 100000000]]] + + , 7: [h'{{ proposing_pparams.guardrails.cbor }}'] + }, + + true, + + null +] + diff --git a/examples/acceptance_tests/script_context/v3/ctx/simple_spend/resolved_inputs.template b/examples/acceptance_tests/script_context/v3/ctx/simple_spend/resolved_inputs.template new file mode 100644 index 00000000..fc52b0ab --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/ctx/simple_spend/resolved_inputs.template @@ -0,0 +1,6 @@ +[ + { 0: h'70{{ simple_spend.spend.hash }}' + , 1: 1000000000 + , 2: [1, 24(h'd87980')] + } +] diff --git a/examples/acceptance_tests/script_context/v3/ctx/simple_spend/tx.template b/examples/acceptance_tests/script_context/v3/ctx/simple_spend/tx.template new file mode 100644 index 00000000..1796bb21 --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/ctx/simple_spend/tx.template @@ -0,0 +1,33 @@ +[ + { 0: + [ [h'0000000000000000000000000000000000000000000000000000000000000000', 0] + ] + + , 1: + [] + + , 2: 42 + + , 11: h'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' + + , 13: + [ [h'0000000000000000000000000000000000000000000000000000000000000000', 0] + ] + + , 16: + [ h'6000000000000000000000000000000000000000000000000000000000', 1000000000 + ] + + , 17: 1 + }, + + { 5: [[0, 0, 121([]), [1000000, 100000000]]] + + , 7: [h'{{ simple_spend.spend.cbor }}'] + + }, + + true, + + null +] diff --git a/examples/acceptance_tests/script_context/v3/ctx/voting/resolved_inputs.template b/examples/acceptance_tests/script_context/v3/ctx/voting/resolved_inputs.template new file mode 100644 index 00000000..dc99bdb5 --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/ctx/voting/resolved_inputs.template @@ -0,0 +1,5 @@ +[ + { 0: h'6000000000000000000000000000000000000000000000000000000000' + , 1: 1000000 + } +] diff --git a/examples/acceptance_tests/script_context/v3/ctx/voting/tx.template b/examples/acceptance_tests/script_context/v3/ctx/voting/tx.template new file mode 100644 index 00000000..8fef1ee7 --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/ctx/voting/tx.template @@ -0,0 +1,52 @@ + +[ + { 0: + [ [h'0000000000000000000000000000000000000000000000000000000000000000', 0] + ] + + , 1: + [] + + , 2: 42 + + , 19: + { [ 0, h'00000000000000000000000000000000000000000000000000000000' ]: + { [ h'9999999999999999999999999999999999999999999999999999999999999999', 152 ]: + [ 0 + , [ "https://aiken-lang.org" + , h'0000000000000000000000000000000000000000000000000000000000000000' + ] + ] + } + + , [ 2, h'00000000000000000000000000000000000000000000000000000000' ]: + { [ h'9999999999999999999999999999999999999999999999999999999999999999', 0 ]: [ 2, null ] + , [ h'8888888888888888888888888888888888888888888888888888888888888888', 1 ]: [ 2, null ] + , [ h'7777777777777777777777777777777777777777777777777777777777777777', 2 ]: [ 2, null ] + } + + , [ 3, h'{{ voting.script.hash }}' ]: + { [ h'9999999999999999999999999999999999999999999999999999999999999999', 3 ]: [ 0, null ] + } + + , [ 4, h'00000000000000000000000000000000000000000000000000000000' ]: + { [ h'9999999999999999999999999999999999999999999999999999999999999999', 4 ]: [ 1, null ] + } + + , [ 1, h'{{ voting.script.hash }}' ]: + { [ h'9999999999999999999999999999999999999999999999999999999999999999', 1 ]: [ 1, null ] + } + } + }, + + { 5: [ [4, 2, 121([]), [1000000, 100000000]] + , [4, 0, 121([42]), [1000000, 100000000]] + ] + + , 7: [h'{{ voting.script.cbor }}'] + }, + + true, + + null +] diff --git a/examples/acceptance_tests/script_context/v3/ctx/withdraw/resolved_inputs.template b/examples/acceptance_tests/script_context/v3/ctx/withdraw/resolved_inputs.template new file mode 100644 index 00000000..6516f2d1 --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/ctx/withdraw/resolved_inputs.template @@ -0,0 +1,7 @@ +[ + { 0: h'30{{ withdraw.spend.hash }}{{ withdraw.spend.hash }}' + , 1: 1000000 + , 2: [1, 24(h'd87980')] + , 3: 24(h'8203{{ withdraw.spend.cbor }}') + } +] diff --git a/examples/acceptance_tests/script_context/v3/ctx/withdraw/tx.template b/examples/acceptance_tests/script_context/v3/ctx/withdraw/tx.template new file mode 100644 index 00000000..2d6f7c3e --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/ctx/withdraw/tx.template @@ -0,0 +1,42 @@ +[ + { 0: + [ [h'0000000000000000000000000000000000000000000000000000000000000000', 0] + ] + + , 1: + [ { 0: h'200000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111' + , 1: 1000000 + } + + , { 0: h'40000000000000000000000000000000000000000000000000000000008198bd431b03' + , 1: 1000000 + } + + , { 0: h'50111111111111111111111111111111111111111111111111111111118198bd431b03' + , 1: 1000000 + } + ] + + , 2: 42 + + , 3: 4492801 + + , 5: + { h'E000000000000000000000000000000000000000000000000000000000': 14 + , h'F0{{ withdraw.withdraw.hash }}': 0 + } + + , 14: + [ h'00000000000000000000000000000000000000000000000000000000' + ] + }, + + { 5: [ [0, 0, 122([121([])]), [1000000, 100000000]] + , [3, 0, 121([]), [1000000, 100000000]] + ] + }, + + true, + + null +] diff --git a/examples/acceptance_tests/script_context/v3/plutus.json b/examples/acceptance_tests/script_context/v3/plutus.json new file mode 100644 index 00000000..53e4b874 --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/plutus.json @@ -0,0 +1,158 @@ +{ + "preamble": { + "title": "script_context/v3", + "description": "End-to-end testing of standard lib script context, for Plutus v3", + "version": "0.0.0", + "plutusVersion": "v3", + "compiler": { + "name": "Aiken", + "version": "v1.0.31-alpha+fe5c565" + }, + "license": "Apache-2.0" + }, + "validators": [ + { + "title": "certificates.script", + "redeemer": { + "title": "_tmp1", + "schema": { + "$ref": "#/definitions/Void" + } + }, + "compiledCode": "591a0301010032323232323232323232323232322533333300f00115332330083001300a37540042a66601860166ea8008494ccc024c8c8c8c94ccc034c018c03cdd50008a99980699b87482036b1024dd6980998081baa001132533300e3007301037540022a66601c66e1d201c375a602860226ea80044c8c94ccc040cdd7a612dd8799fd8799fd87a9f581c22222222222222222222222222222222222222222222222222222222ffd87a80ffff00330010054800054ccc040cdd7a612dd8799fd8799fd8799f581c00000000000000000000000000000000000000000000000000000000ffd87a80ffff00330010054800854ccc040cdd7a612dd8799fd87a9fd8799f581c00000000000000000000000000000000000000000000000000000000ffd87a80ffff00330010054801054ccc040cdd7a6149d8799fd905009f581c1111111111111111111111111111111111111111111111111111111158209999999999999999999999999999999999999999999999999999999999999999ffff00330010054801854ccc040cdd7a612ad8799fd905019f581c11111111111111111111111111111111111111111111111111111111190539ffff00330010054802054ccc040cdd7a6133d8799fd8799fd8799f581c00000000000000000000000000000000000000000000000000000000ffd8799f1a002dc6c0ffffff00330010054802854ccc040cdd7a6133d8799fd87a9fd8799f581c00000000000000000000000000000000000000000000000000000000ffd8799f1a002dc6c0ffffff00330010054803054ccc040cdd7a6154d8799fd87b9fd8799f581c00000000000000000000000000000000000000000000000000000000ffd87a9fd8799fd8799f581c00000000000000000000000000000000000000000000000000000000ffffffffff00330010054803854ccc040cdd7a6154d8799fd87b9fd8799f581c00000000000000000000000000000000000000000000000000000000ffd87a9fd8799fd87a9f581c00000000000000000000000000000000000000000000000000000000ffffffffff00330010054804054ccc040cdd7a6131d8799fd87b9fd8799f581c00000000000000000000000000000000000000000000000000000000ffd87a9fd87a80ffffff00330010054804854ccc040cdd7a6131d8799fd87b9fd8799f581c00000000000000000000000000000000000000000000000000000000ffd87a9fd87b80ffffff00330010054805054ccc040cdd7a614fd8799fd87b9fd8799f581c00000000000000000000000000000000000000000000000000000000ffd87b9f581c11111111111111111111111111111111111111111111111111111111d87b80ffffff00330010054805854ccc040cdd7a6151d8799fd87c9fd8799f581c00000000000000000000000000000000000000000000000000000000ffd8799f581c11111111111111111111111111111111111111111111111111111111ff1a002dc6c0ffff00330010054806054ccc040cdd7a6136d8799fd87c9fd8799f581c00000000000000000000000000000000000000000000000000000000ffd87a9fd87b80ff1a002dc6c0ffff00330010054806854ccc040cdd7a6154d8799fd87c9fd8799f581c00000000000000000000000000000000000000000000000000000000ffd87b9f581c11111111111111111111111111111111111111111111111111111111d87b80ff1a002dc6c0ffff00330010054807054ccc040cdd7a614dd8799fd905029fd8799f581c00000000000000000000000000000000000000000000000000000000ffd8799f581c22222222222222222222222222222222222222222222222222222222ffffff00330010054807854ccc040cdd7a612bd8799fd905039fd8799f581c00000000000000000000000000000000000000000000000000000000ffffff00330010054808054ccc040cdd7a612fd8799fd87d9fd8799f581c00000000000000000000000000000000000000000000000000000000ff1a002dc6c0ffff00330010054808854ccc040cdd7a612fd8799fd87f9fd8799f581c00000000000000000000000000000000000000000000000000000000ff1a002dc6c0ffff00330010054809054ccc040cdd7a612ad8799fd87e9fd8799f581c00000000000000000000000000000000000000000000000000000000ffffff0033001005480984c94ccc044c028c04cdd5000899299980919b8748010c050dd500089919299980a19b8748008c058dd5180d0010a99980a1806980b1baa00114a202202260326034002602a6ea800403cc05cc050dd500080719800802a40502a660229201a56578706563740a202020202020536f6d65280a202020202020202055706461746544656c6567617465526570726573656e746174697665207b0a2020202020202020202064656c65676174655f726570726573656e7461746976653a20566572696669636174696f6e4b6579286f6e6c793073292c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286365727469666963617465732c2031392900161533011491c66578706563740a202020202020536f6d65280a2020202020202020556e726567697374657244656c6567617465526570726573656e746174697665207b0a2020202020202020202064656c65676174655f726570726573656e7461746976653a20566572696669636174696f6e4b6579286f6e6c793073292c0a20202020202020202020726566756e643a20335f3030305f3030302c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286365727469666963617465732c2031382900161533011491c56578706563740a202020202020536f6d65280a2020202020202020526567697374657244656c6567617465526570726573656e746174697665207b0a2020202020202020202064656c65676174655f726570726573656e7461746976653a20566572696669636174696f6e4b6579286f6e6c793073292c0a202020202020202020206465706f7369743a20335f3030305f3030302c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286365727469666963617465732c2031372900161533011491b26578706563740a202020202020536f6d65280a202020202020202052657469726546726f6d436f6e737469747574696f6e616c436f6d6d6974746565207b0a20202020202020202020636f6e737469747574696f6e616c5f636f6d6d69747465655f6d656d6265723a20566572696669636174696f6e4b6579286f6e6c793073292c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286365727469666963617465732c2031362900161533011491e06578706563740a202020202020536f6d65280a2020202020202020417574686f72697a65436f6e737469747574696f6e616c436f6d6d697474656550726f7879207b0a20202020202020202020636f6e737469747574696f6e616c5f636f6d6d69747465655f6d656d6265723a20566572696669636174696f6e4b6579286f6e6c793073292c0a2020202020202020202070726f78793a20566572696669636174696f6e4b6579286f6e6c793273292c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286365727469666963617465732c2031352900161533011491ff6578706563740a202020202020536f6d65280a20202020202020205265676973746572416e6444656c656761746543726564656e7469616c207b0a2020202020202020202063726564656e7469616c3a20566572696669636174696f6e4b6579286f6e6c793073292c0a2020202020202020202064656c65676174653a2044656c6567617465426f7468207b0a2020202020202020202020207374616b655f706f6f6c3a206f6e6c7931732c0a20202020202020202020202064656c65676174655f726570726573656e7461746976653a20416c776179734e6f436f6e666964656e63652c0a202020202020202020207d2c0a20202020202020202020646541706f7369743a20335f3030305f3030302c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286365727469666963617465732c2031342900161533011491ed6578706563740a202020202020536f6d65280a20202020202020205265676973746572416e6444656c656761746543726564656e7469616c207b0a2020202020202020202063726564656e7469616c3a20566572696669636174696f6e4b6579286f6e6c793073292c0a2020202020202020202064656c65676174653a2044656c6567617465566f746528416c776179734e6f436f6e666964656e6365292c0a202020202020202020206465706f7369743a20335f3030305f3030302c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286365727469666963617465732c2031332900161533011491ec6578706563740a202020202020536f6d65280a20202020202020205265676973746572416e6444656c656761746543726564656e7469616c207b0a2020202020202020202063726564656e7469616c3a20566572696669636174696f6e4b6579286f6e6c793073292c0a2020202020202020202064656c65676174653a2044656c6567617465426c6f636b50726f64756374696f6e286f6e6c793173292c0a202020202020202020206465706f7369743a20335f3030305f3030302c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286365727469666963617465732c2031322900161533011491ff6578706563740a202020202020536f6d65280a202020202020202044656c656761746543726564656e7469616c207b0a2020202020202020202063726564656e7469616c3a20566572696669636174696f6e4b6579286f6e6c793073292c0a2020202020202020202064656c65676174653a2044656c6567617465426f7468207b0a2020202020202020202020207374616b655f706f6f6c3a206f6e6c7931732c0a20202020202020202020202064656c65676174655f726570726573656e7461746976653a20416c776179734e6f436f6e666964656e63652c0a202020202020202020207d2c0a20202020202020207d2c0a20202020202029203d3d206c186973742e6174286365727469666963617465732c2031312900161533011491c46578706563740a202020202020536f6d65280a202020202020202044656c656761746543726564656e7469616c207b0a2020202020202020202063726564656e7469616c3a20566572696669636174696f6e4b6579286f6e6c793073292c0a2020202020202020202064656c65676174653a2044656c6567617465566f746528416c776179734e6f436f6e666964656e6365292c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286365727469666963617465732c2031302900161533011491be6578706563740a202020202020536f6d65280a202020202020202044656c656761746543726564656e7469616c207b0a2020202020202020202063726564656e7469616c3a20566572696669636174696f6e4b6579286f6e6c793073292c0a2020202020202020202064656c65676174653a2044656c6567617465566f746528416c776179734162737461696e292c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286365727469666963617465732c20392900161533011491cb6578706563740a202020202020536f6d65280a202020202020202044656c656761746543726564656e7469616c207b0a2020202020202020202063726564656e7469616c3a20566572696669636174696f6e4b6579286f6e6c793073292c0a2020202020202020202064656c65676174653a2044656c6567617465566f7465285265676973746572656428536372697074286f6e6c7930732929292c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286365727469666963617465732c20382900161533011491d46578706563740a202020202020536f6d65280a202020202020202044656c656761746543726564656e7469616c207b0a2020202020202020202063726564656e7469616c3a20566572696669636174696f6e4b6579286f6e6c793073292c0a2020202020202020202064656c65676174653a2044656c6567617465566f7465285265676973746572656428566572696669636174696f6e4b6579286f6e6c7930732929292c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286365727469666963617465732c20372900161533011491b26578706563740a202020202020536f6d65280a2020202020202020556e726567697374657243726564656e7469616c207b0a2020202020202020202063726564656e7469616c3a20566572696669636174696f6e4b6579286f6e6c793073292c0a20202020202020202020726566756e643a20536f6d6528335f3030305f303030292c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286365727469666963617465732c20362900161533011491b16578706563740a202020202020536f6d65280a2020202020202020526567697374657243726564656e7469616c207b0a2020202020202020202063726564656e7469616c3a20566572696669636174696f6e4b6579286f6e6c793073292c0a202020202020202020206465706f7369743a20536f6d6528335f3030305f303030292c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286365727469666963617465732c203529001615330114917e6578706563740a202020202020536f6d65285265746972655374616b65506f6f6c207b207374616b655f706f6f6c3a206f6e6c7931732c2061745f65706f63683a2031333337207d29203d3d206c6973742e6174280a20202020202020206365727469666963617465732c0a2020202020202020342c0a20202020202029001615330114917d6578706563740a202020202020536f6d652852656769737465725374616b65506f6f6c207b207374616b655f706f6f6c3a206f6e6c7931732c207672663a206f6e6c793973207d29203d3d206c6973742e6174280a20202020202020206365727469666963617465732c0a2020202020202020332c0a2020202020202900161533011491a76578706563740a202020202020536f6d65280a2020202020202020556e726567697374657243726564656e7469616c207b0a2020202020202020202063726564656e7469616c3a20566572696669636174696f6e4b6579286f6e6c793073292c0a20202020202020202020726566756e643a204e6f6e652c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286365727469666963617465732c20322900161533011491a66578706563740a202020202020536f6d65280a2020202020202020526567697374657243726564656e7469616c207b0a2020202020202020202063726564656e7469616c3a20566572696669636174696f6e4b6579286f6e6c793073292c0a202020202020202020206465706f7369743a204e6f6e652c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286365727469666963617465732c20312900161533011491886578706563740a202020202020536f6d6528526567697374657243726564656e7469616c207b2063726564656e7469616c3a20536372697074286f6e6c793273292c206465706f7369743a204e6f6e65207d29203d3d206c6973742e6174280a20202020202020206365727469666963617465732c0a2020202020202020302c0a2020202020202900163001001222533301500214c103d87a8000132325333013300c00313374a90001980c00125eb804ccc014014004cdc0001a40026032006602e004014014602660286028602860286028602860286028602860286028602860286028602860206ea8c00cc040dd500280400418091809980998099809980998099809980998099809980998099809980998079baa3002300f37540086eb0c044c048c048c048c048c048c038dd5180098071baa0032301100132533300a3370e900318061baa00113232533300c3370e90141bad30120021533300c3370e900218071baa00113232533300e3375e98122d8799f581c11111111111111111111111111111111111111111111111111111111ff00301430150021533300e3370e900118081baa001149854cc03d24011e65787065637420536372697074282e2e29203d2063726564656e7469616c0016153300f491416578706563742044656c6567617465426c6f636b50726f64756374696f6e207b207374616b655f706f6f6c3a206f6e6c793173207d203d3d2064656c656761746500163013001300f375400201601660226024002601a6ea8004024c03cc040c040c030dd50008a4c2a6601492011856616c696461746f722072657475726e65642066616c73650013656006370e90000028028028028028a9980324814165787065637420536f6d652831305f3030305f30303029203d206374782e7472616e73616374696f6e2e63757272656e745f74726561737572795f616d6f756e74001615330054913365787065637420536f6d6528313429203d206374782e7472616e73616374696f6e2e74726561737572795f646f6e6174696f6e001615330044918e65787065637420536f6d652844656c656761746543726564656e7469616c207b0a20202020202063726564656e7469616c3a20536372697074282e2e292c0a20202020202064656c65676174653a2044656c6567617465426c6f636b50726f64756374696f6e282e2e292c0a202020207d29203d206c6973742e6174286365727469666963617465732c20323029001615330034910b5f746d70313a20566f69640016153300249149657870656374205075626c697368696e672832302c2044656c656761746543726564656e7469616c207b2063726564656e7469616c2c2064656c6567617465207d29203d20696e666f00165734ae7155ceaab9e5573eae815d0aba257481", + "hash": "9d0e90919e83c40a0c1f5be7c2203a78003210e4e52629c33b017bca" + }, + { + "title": "mint.mint_1", + "redeemer": { + "title": "_tmp2", + "schema": { + "$ref": "#/definitions/Data" + } + }, + "compiledCode": "590fe001010032323232323232323232322253330053232323232323232323232324a2a66602066ebcdd31980a99bb04c1225820923918e403bf43c34b4ef6b48eb2ee04babed17320d8d1b9ff9ad086e86f44ec004c0103d87980004bd6f7b630180b180b980b980b980b980b980b980b980b980b980b98099baa3008301337540182930a99808a4937657870656374205b5061697228766f69645f686173682c20766f6964295d203d3d20646963742e746f5f706169727328646174756d73290016533300f3375e6e9ccc050c014cc051300127d8799f5820000000000000000000000000000000000000000000000000000000000000000000ff0033014300533014300448811c000000000000000000000000000000000000000000000000000000000033014374c6006904044bd1980a260103d8798000330144c103d87a80004bd7025eb812f5c0602a602c60246ea8c01cc048dd50058a4c2a66020921ff6578706563740a202020205b0a202020202020496e707574207b0a20202020202020206f75747075745f7265666572656e63653a204f75747075745265666572656e6365207b0a202020202020202020207472616e73616374696f6e5f69643a206e756c6c33322c0a202020202020202020206f75747075745f696e6465783a20302c0a20202020202020207d2c0a20202020202020206f75747075743a204f7574707574207b0a20202020202020202020616464726573733a2063726564656e7469616c2e66726f6d5f766572696669636174696f6e5f6b6579286e756c6c3238292c0a2020202020202020202076616c75653a206173736574732e6672776f6d5f6c6f76656c61636528315f3030305f303030292c0a20202020202020202020646174756d3a204e6f446174756d2c0a202020202020202020207265666572656e63655f7363726970743a204e6f6e652c0a20202020202020207d2c0a2020202020207d2c0a202020205d203d3d20696e707574730016533300e3375e6e9ccc04cdd3998099ba9005330134c1064561696b656e00330134c1012d004bd70198099ba733013375200a66026981084763617264616e6f00330134c10101004bd70198099ba733013375200e66026981054474756e6100330134c1091b00005af3107a4000004bd7025eb80dd399198008009bab3015301630163016301630123754600e60246ea802c894ccc05000452f5c0264666444646600200200644a6660340022006264660386e9ccc070dd48031980e180c8009980e180d000a5eb80cc00c00cc078008c070004dd718098009bab30140013300300330180023016001149854cc03d2401a86578706563740a202020205b0a202020202020286f746865725f706f6c6963795f69642c202261696b656e222c202d3134292c0a202020202020286f746865725f706f6c6963795f69642c202263617264616e6f222c2031292c0a202020202020286f75725f706f6c6963795f69642c202274756e61222c20313030303030303030303030303030292c0a202020205d203d3d206173736574732e666c617474656e286d696e7429001633232323232323232253330163370e600c00290030a99980b19baf300c3301b300c3301b300b48811c00000000000000000000000000000000000000000000000000000000003301b374c6014904044bd1980da60126d87a9f5820923918e403bf43c34b4ef6b48eb2ee04babed17320d8d1b9ff9ad086e86f44ecff003301b4c103d87a80004bd7025eb80cc0100052000153330163375e6018660366018660366600660169111c000000000000000000000000000000000000000000000000000000000048811c00000000000000000000000000000000000000000000000000000000003301b374c666600466660046014904044bd007a4410474756e610048202034a1f8af0b403522010561696b656e0048150cc06d300103d87980003301b4c103d87a80004bd7025eb80cc0100052002153330163375e6018660366018660366600660186603666e9520023301b4c011e581c00000000000000000000000000000000000000000000000000000000004bd701980da60103d87a80004bd702451c00000000000000000000000000000000000000000000000000000000003301b374c66660046014904044bd006a450763617264616e6f0048008cc06d300103d87980003301b4c122d8799f581c68ad54b3a8124d9fe5caaaf2011a85d72096e696a2fb3d7f86c41717ff004bd7025eb80cc0100052004149854cc05d2401ff6578706563740a20202020536f6d65280a2020202020204f7574707574207b0a2020202020202020616464726573733a2063726564656e7469616c2e66726f6d5f736372697074286e756c6c3238290a202020202020202020207c3e2063726564656e7469616c2e776974685f64656c65676174696f6e5f6b6579286e756c6c3238292c0a202020202020202076616c75653a206173736574732e66726f6d5f6c6f76656c61636528315f3030305f303030290a202020202020202020207c3e206173736574732e616464286f746865725f706f6c6963795f69642c202263617264616e6f222c2031292c0a2020202020202020646174756d3a204e6f44619c74756d2c0a20202020202020207265666572656e63655f7363726970743a20536f6d65280a2020202020202020202023223638616435346233613831323464396665356361616166323031316138356437323039366536393661326662336437663836633431373137222c0a2020202020202020292c0a2020202020207d2c0a2020202029203d3d206c6973742e6174286f7574707574732c20322900161533017491ff6578706563740a20202020536f6d65280a2020202020204f7574707574207b0a2020202020202020616464726573733a2063726564656e7469616c2e66726f6d5f766572696669636174696f6e5f6b6579286e756c6c3238290a202020202020202020207c3e2063726564656e7469616c2e776974685f64656c65676174696f6e5f6b6579286e756c6c3238292c0a202020202020202076616c75653a206173736574732e66726f6d5f6c6f76656c61636528315f3030305f303030290a202020202020202020207c3e206173736574732e616464286f75725f706f6c6963795f69642c202274756e61222c20313030303030303030303030303030290a20932020202020202020207c3e206173736574732e616464286f746865725f706f6c6963795f69642c202261696b656e222c203432292c0a2020202020202020646174756d3a204e6f446174756d2c0a20202020202020207265666572656e63655f7363726970743a204e6f6e652c0a2020202020207d2c0a2020202029203d3d206c6973742e6174286f7574707574732c20312900161533017491f56578706563740a20202020536f6d65280a2020202020204f7574707574207b0a2020202020202020616464726573733a2063726564656e7469616c2e66726f6d5f766572696669636174696f6e5f6b6579286e756c6c3238292c0a202020202020202076616c75653a206173736574732e66726f6d5f6c6f76656c61636528315f3030305f303030292c0a2020202020202020646174756d3a20446174756d4861736828766f69645f68617368292c0a20202020202020207265666572656e63655f7363726970743a204e6f6e652c0a2020202020207d2c0a2020202029203d3d206c6973742e6174286f7574707574732c2030290016153301749120657870656374206c6973742e6c656e677468286f75747075747329203d3d203300162222533301830120011004132323300100100622533301f001133020337606ea4018dd3001a5eb7bdb1804c8c8c8c94ccc07ccdc800500109981219bb037520146e9801c01454ccc07ccdc78050010992999810180d18111baa001133025337606ea402cc098c08cdd5000802080219299981029998120008a5114a0298103d87a80001301633025374c00297ae03233001001002225333025001133026337606ea402cdd400525eb7bdb1804c8c8c8c94ccc094cdc800780109981519bb0375201e6ea003801454ccc094cdc78078010992999813181018141baa00113302b337606ea4040c0b0c0a4dd5000802080219299981318100008a6103d87a80001301c3302b375000297ae03370000201c26605466ec0dd48011ba800133006006003375a604e0066eb8c094008c0a4008c09c0044cc090cdd81ba9002374c0026600c00c0066eacc08400cdd7180f80118118011810800991900118058009980e99bb037520046ea00052f5bded8c044601666034601a60306ea8008cc068c02ccc068c02ccc068c02ccc068dd4800a5eb812f5c097ae04bd701800800911299980c0010a60103d87a800013232533301630100031300c3301b0024bd70099980280280099b8000348004c07000cc068008c004004894ccc05400452000133700900119801001180c00098008009129998098008a4c264a66602800229309919299980919b90375c602860300086eb8c0500084cc014014cc05c00800454cc04d241326b65797320696e206173736f63696174697665206c697374206172656e277420696e20617363656e64696e67206f7264657200163018002301600130160013758601060206ea8c014c040dd50049299980698038008a5eb7bdb1804c8c8cc0040052f5bded8c044a66602800226602a66ec13001014000374c00697adef6c60132323232533301433720910100002133019337609801014000374c00e00a2a66602866e3d22100002133019337609801014000374c00e00626603266ec0dd48011ba6001330060060033756602c0066eb8c050008c060008c058004c8cc0040052f5bded8c044a66602600226602866ec13001014000375000697adef6c60132323232533301333720910100002133018337609801014000375000e00a2a66602666e3d22100002133018337609801014000375000e00626603066ec0dd48011ba800133006006003375a602a0066eb8c04c008c05c008c0540048c008cc044c008cc044dd4800a5eb80cc04530103d87a80004bd701ba548000c94ccc0380040204c8c94ccc04000402854ccc040c04c0044c8c94ccc038c020c040dd5001099299999980b8010a999807980498089baa0021533301330123754004200201c01c01c01c01c01c6eb8c050c044dd500100618080019807001005180900118080009bab300f301030103010301030103010301030103010300c3754600260186ea80148c03c004c94ccc020c008c028dd500089bae300e300b37540022a6601292120657870656374204d696e74696e6728706f6c6963795f696429203d20696e666f00163002300a37540066e1d20002300c300d300d001149854cc01924011856616c696461746f722072657475726e65642066616c736500136561533003490139657870656374205b50616972284d696e74286f746865725f706f6c6963795f6964292c2064617461292c205f5d203d2072656465656d657273001615330024911265787065637420566f6964203d206461746100165734ae7155ceaab9e5573eae815d0aba257481", + "hash": "28f948cbe411a7132eb0c1b5f65fb141aa65d8d3a948ec35a07dae38" + }, + { + "title": "mint.mint_2", + "redeemer": { + "title": "_tmp2", + "schema": { + "$ref": "#/definitions/Void" + } + }, + "compiledCode": "58930101003232323232323225333333008001153330033370e900018029baa001153330073006375400224a666008a6600a9201105f5f5f5f5f6d696e745f325f5f5f5f5f0014a22930a99802a4811856616c696461746f722072657475726e65642066616c73650013656002002002002002002153300249010b5f746d70323a20566f696400165734ae7155ceaab9e5573eae91", + "hash": "0c8eaf490c53afbf27e3d84a3b57da51fbafe5aa78443fcec2dc262e" + }, + { + "title": "proposing_all.guardrails", + "redeemer": { + "title": "_tmp1", + "schema": { + "$ref": "#/definitions/Void" + } + }, + "compiledCode": "590c9f0101003232323232323232323232323232322533333301000115332330093001300b37540042a66601a60186ea8008494ccc028c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c92899299980e980a980f9baa001132533301e3012375a602860426ea800454ccc078cdd7980698109baa0014c122d8799f581c00000000000000000000000000000000000000000000000000000000ff001533301e3375e601860426ea8005300103d87f8000149854cc07d2412e6578706563742070726f6365647572652e676f7665726e616e63655f616374696f6e203d3d204e696365506f6c6c0016153301f4913a6578706563742070726f6365647572652e72657475726e5f61646472657373203d3d20566572696669636174696f6e4b6579286e756c6c323829001601d30233020375400203666018022900819804198058082401c4a66603866ebd30012dd87e9fd87a80d8799fd8799f581c00000000000000000000000000000000000000000000000000000000ffffff00001149854cc0752401996578706563740a202020202020202020204e6577436f6e737469747574696f6e207b0a202020202020202020202020616e636573746f723a204e6f6e652c0a202020202020202020202020636f6e737469747574696f6e3a20436f6e737469747574696f6e207b2067756172647261696c733a20536f6d65286e756c6c323829207d2c0a202020202020202020207d203d3d20616374696f6e0016330073300a00f4803094ccc06ccdd7a6010ed87e9fd87a80d8799fd87a80ffff00001149854cc0712401916578706563740a202020202020202020204e6577436f6e737469747574696f6e207b0a202020202020202020202020616e636573746f723a204e6f6e652c0a202020202020202020202020636f6e737469747574696f6e3a20436f6e737469747574696f6e207b2067756172647261696c733a204e6f6e65207d2c0a202020202020202020207d203d3d20616374696f6e0016330063300900e480288c94ccc06cc04cc074dd50008a99980d99baf3374a90041981026103d87a8000330204c1249fd8799f581c00000000000000000000000000000000000000000000000000000000ffff00330204c126a1d8799f581c00000000000000000000000000000000000000000000000000000000ff1901f400330203021301e375400297ae0002149854cc071241e96578706563740a20202020202020202020436f6e737469747574696f6e616c436f6d6d6974746565207b0a202020202020202020202020616e636573746f723a204e6f6e652c0a202020202020202020202020657669637465645f6d656d626572733a205b566572696669636174696f6e4b6579286e756c6c3238295d2c0a20202020202020202020202061646465645f6d656d626572733a205b5061697228566572696669636174696f6e4b6579286e756c6c3238292c20353030295d2c0a20202020202020202020202071756f72756d2c0a202020202020202020207d203d3d20616374696f6e0016153301c4912865787065637420536f6d652871756f72756d29203d20726174696f6e616c2e6e657728312c2032290016533301a4a0298103d87a80001533301a4a0260186603e60186603e6ea120013301f37509001a5eb812f5c0260186603e60186603e9810101003301f4c10102004bd7025eb80cc014cc0200352008253330193375e98107d87c9fd87a80ff00001149854cc069240130657870656374204e6f436f6e666964656e6365207b20616e636573746f723a204e6f6e65207d203d3d20616374696f6e0016330043300700c4801894ccc060cdc3a400860346ea800454ccc060c040c068dd5180f180f980d9baa0011498048048cc00ccc01802d2004253330173375e98012fd87b9fa1d8799f581c11111111111111111111111111111111111111111111111111111111ff1a000f4240d87a80ff00001149854cc0612401ff6578706563740a2020202020202020202054726561737572795769746864726177616c207b0a20202020202020202020202062656e656669636961726965733a205b0a202020202020202020202020202050616972280a20202020202020202020202020202020566572696669636174696f6e4b6579280a20202020202020202020202020202020202023223131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131222c0a20202020202020202020202020202020292c0a20202020202020202020202020202020315f3030305f3030302c0a202020202020202020204920202020292c0a2020202020202020202020205d2c0a20202020202020202020202067756172647261696c733a204e6f6e652c0a202020202020202020207d203d3d20616374696f6e0016330023300500a4800894ccc058cdd7a60135d87a9fd8799fd8799f5820000000000000000000000000000000000000000000000000000000000000000000ffffd8799f0b00ffff00001149854cc05d24019d6578706563740a2020202020202020202048617264466f726b207b0a202020202020202020202020616e636573746f723a20536f6d6528476f7665726e616e6365416374696f6e4964286e756c6c33322c203029292c0a2020202020202020202020206e65775f76657273696f6e3a2050726f746f636f6c56657273696f6e2831312c2030292c0a202020202020202020207d203d3d20616374696f6e001633001330040094800094ccc054cdd7a6010dd87a9fd87a80d8799f0a00ffff00001149854cc05924015b6578706563740a2020202020202020202048617264466f726b207b20616e636573746f723a204e6f6e652c206e65775f76657273696f6e3a2050726f746f636f6c56657273696f6e2831302c203029207d203d3d20616374696f6e0016225333015300d30173754004264a66602c60146eb4c030c064dd50008a99980b19baf300530193754002980122d87a9f581c00000000000000000000000000000000000000000000000000000000ff00130023004301937540022a6602e921316578706563742070726f6365647572652e72657475726e5f61646472657373203d3d20536372697074286e756c6c3238290016015301b3018375400402646032603460340024603060320026002002444a66602c0042980103d87a8000132325333014300c00313006330190024bd70099980280280099b8000348004c06800cc060008dd2a400064a666024002014264a666026602c00426464a66602266e1d200a3013375400426464a66602666e1d2006375a6032004264646464a66602e60166eb4c07401054ccc05ccdd780126122d87a9f581c00000000000000000000000000000000000000000000000000000000ff00153330173370e9002180c9baa0011533333301f00715333017300f3019375400e2a66603660346ea801c52601401401401401401415330184901346578706563742054726561737572795769746864726177616c207b202e2e207d203d20676f7665726e616e63655f616374696f6e00161533018491276578706563742072657475726e5f61646472657373203d3d20536372697074286e756c6c323829001615330184911b657870656374206465706f736974203d3d20325f3030305f3030300016301c301d002301b001301b0013016375400201e6030603200260286ea8008034c04c008c04400402cc050004dd59809980a180a180a180a180a180a180a180a180a18081baa3003301037540086e1d208092f401375860226024602460246024602460246024602460246024602460246024601c6ea8c004c038dd5001118088008a4c2a660169211856616c696461746f722072657475726e65642066616c73650013656004370e90000018018018018018a99803a4813f6578706563742054726561737572795769746864726177616c207b2067756172647261696c733a20536f6d65282e2e292c202e2e207d203d20616374696f6e001615330064910b5f746d70313a20566f6964001615330054918d657870656374205b0a20202020506169722850726f706f7365280a202020202020332c0a20202020202050726f706f73616c50726f636564757265207b206465706f7369742c2072657475726e5f616464726573732c20676f7665726e616e63655f616374696f6e207d2c0a20202020292c0a2020202064617461292c0a20205d203d2072656465656d657273001615330044911265787065637420566f6964203d2064617461001615330034912265787065637420536f6d652870726f63656475726529203d2070726f63656475726500161533002491256578706563742070726f6365647572652e6465706f736974203d3d20325f3030305f30303000165734ae7155ceaab9e5573eae815d0aba257481", + "hash": "60f0f27c1b8abf91b947b4eec7a9ae1741cc7065ad778c2bfb4ec44d" + }, + { + "title": "proposing_pparams.guardrails", + "redeemer": { + "title": "_tmp1", + "schema": { + "$ref": "#/definitions/Void" + } + }, + "compiledCode": "591ad601010032323232323232323232323232323232323225333333013001153323300c3001300e37540042a666020601e6ea8008494ccc034c94ccc038cdc3a401460206ea80044c8c94ccc040c014dd6980b0010992999808980318099baa00113232323253330153370e9001180b9baa301b00415333015300a301737540022646464a66603066ebcccc00801520000014c106d8799f182cff00153330183375e66600400a9001000a6109d8799f1a00025ef5ff00153330183375e66600400a9002000a6109d8799f1a00016000ff00153330183375e66600400a9003000a6107d8799f194000ff00153330183375e66600400a9004000a6107d8799f19044cff00153330183375e66600400a9005000a6109d8799f1a001e8480ff00153330183375e66600400a9006000a6109d8799f1a1dcd6500ff00153330183375e66600400a9007000a6105d8799f12ff00153330183375e66600400a9008000a6107d8799f1901f4ff0013232323232533301d3375e666004014900900098041981119801a400c900a25eb8054ccc074cdd799980100524028002601066044660069003241a01e97ae01533301d3375e666004014900b00098041981119801a4004900525eb8054ccc074cdd79998038052404000c980107d8799f190154ff001533301d3375e66600e014901100326107d8799f1910d6ff001533301d3375e66600401490121000a60103d87a80001533301d3375e66600401490131299999981300080e80e899299981180080f0991929998128008100992999813181480109806998139803001998139803000a5eb80084c09c004c09c008c094004dd600080e80e98041981118041981119801a4104129068079981119801a414416904044bd25eb812f5c0264a66603c66ebcccc00c02d20280014c116d8799fd8799f1a00d59f801b00000002540be400ffff001533301e3375e6660060169015000a6116d8799fd8799f1a03b20b801b00000004a817c800ffff001533301e3375e6660100169016003a6107d8799f191388ff001533301e3375e6660100169017003a6106d8799f1896ff001533301e3375e6660100169018003a6105d8799f03ff001533301e3375e66600601690191299999981380080e00e099299981200080e89919299981300080f899192999814000810899192999815000811899192999816000812899299981698180010980a19817180680499817180a198171806803998171806802a5eb80cc0b8c03400ccc0b8c050cc0b8c034004cc0b930103d87980003302e4c103d87980003302e4c103d87980003302e4c103d87980004bd7025eb80098c0b8004c0b8008c0b0004c0b0008c0a8004c0a8008c0a0004c0a0008c098004dd600080e00e26141d8799fd8799fd8799f18331864ffd8799fd8799f0d1819ffd8799f18351864ffffd8799f181b1832ffd8799fd8799f0b14ffd87980d87980d87980d87980ffffff001533301e3375e646464646464666012022901a129981319b964901186472657020766f74696e67207468726573686f6c64733a20003732660040029101001533333302d001021021132533302a00102213232533302c00102413232533302e00102613232533303000102813232533303200102a13232533303400102c13232533303600102e13232533303800103013232533303a00103213232533303c001034132533303d3040002130243303e301d0133303e30243303e301d0113303e301d00f4bd701981f180e8069981f180e8059981f18121981f260103d87980003303e301d0093303e301d0073303e301d0053303e301d0034bd701981f180e800a5eb800d4c0f8004c0f8008c0f0004c0f0008c0e8004c0e8008c0e0004c0e0008c0d8004c0d8008c0d0004c0d0008c0c8004c0c8008c0c0004c0c0008c0b8004c0b8008c0b0004dd6000810810980080091129999199981700189919191919191980600100099b8a489012800002533302a337100069007099b80483c80400c54ccc0a8cdc4001a410004266e00cdc0241002800690068b2999816800899b8a4881035b5d2900005133714911035b5f2000333300800133714911025d290000522333009009002300600122333009009002001375860560046eb4c0a4004c8cdd81ba83029001374e60540026ea800c4c94ccc0ac0044cdc52441027b7d00003133714911037b5f200032323300100100322533302e00110031533302e3031001132333009009302d001337149101023a2000333009009302e0010043030001132333009009302d001337149101023a2000333009009302e001300633003003303200230300013371491102207d000033756006264a666056002266e29221025b5d00003133714911035b5f2000333300600133714911015d000032233300700700230040012233300700700200137580066e292201022c2000133005375a0040022646466e2922010268270000132333001001337006e3400920013371491101270000322253330293371000490000800899191919980300319b8000548004cdc599b80002533302c33710004900a0a40c02903719b8b33700002a66605866e2000520141481805206e0043370c004901019b8300148080cdc70020011bae0022222323300100100522533302b00110051533302b302e001133003302d001005133004302d00133002002302e001223233001001003225333024301900113371491101300000315333024337100029000099b8a489012d0033002002300c00113300533708002900a19b8b3370066e1400520144818000cc0040048894ccc084cdc4801240002002266600600666e1000920143371666e00cdc2801240289030000a615bd8799fd8799fd8799f18431864ffd8799fd8799f18431864ffd8799f0305ffffd8799f0304ffd8799f0305ffd8799fd87980d8799f18431864ffd8799f18431864ffd8799f18431864ffd8799f0304ffffd8799f18431864ffffff001533301e3375e666010016901b003a6105d8799f07ff001533301e3375e666010016901c003a6106d8799f1892ff001533301e3375e666010016901d003a6105d8799f06ff001533301e3375e666010016901e003a610dd8799f1b000000174876e800ff001533301e3375e666010016901f003a6109d8799f1a1dcd6500ff001533301e3375e6660100169020003a6105d8799f14ff001533301e3375e6660060169021001180499811998022403c900125eb805288a9980fa4817d6578706563740a20202020202028206e65775f706172616d6574657273207c3e207265666572656e63655f736372697074735f746965725f6665655f696e697469616c5f666163746f722029203d3d20536f6d65280a20202020202020206578706563745f726174696f6e616c2831352c2031292c0a202020202020290016153301f491546578706563740a20202020202028206e65775f706172616d6574657273207c3e2064656c65676174655f726570726573656e7461746976655f6d61785f69646c655f74696d652029203d3d20536f6d65283230290016153301f491576578706563740a20202020202028206e65775f706172616d6574657273207c3e2064656c65676174655f726570726573656e7461746976655f6465706f7369742029203d3d20536f6d65283530305f3030305f303030290016153301f491576578706563740a20202020202028206e65775f706172616d6574657273207c3e20676f7665726e616e63655f70726f706f73616c5f6465706f7369742029203d3d20536f6d65283130305f3030305f3030305f303030290016153301f491446578706563742028206e65775f706172616d6574657273207c3e20676f7665726e616e63655f70726f706f73616c5f6c69666574696d652029203d3d20536f6d652836290016153301f491546578706563740a20202020202028206e65775f706172616d6574657273207c3e206d61785f636f6e737469747574696f6e616c5f636f6d6d69747465655f6d616e646174652029203d3d20536f6d6528313436290016153301f491496578706563742028206e65775f706172616d6574657273207c3e206d696e5f636f6e737469747574696f6e616c5f636f6d6d69747465655f73697a652029203d3d20536f6d652837290016153301f491786578706563740a20202020202028206e65775f706172616d6574657273207c3e2064656c65676174655f726570726573656e7461746976655f766f74696e675f7468726573686f6c64732029203d3d20536f6d65280a2020202020202020647265705f7468726573686f6c647328292c0a202020202020290016153301f491736578706563740a20202020202028206e65775f706172616d6574657273207c3e207374616b655f706f6f6c5f6f70657261746f725f766f74696e675f7468726573686f6c64732029203d3d20536f6d65280a202020202020202073706f5f7468726573686f6c647328292c0a202020202020290016153301f4913d6578706563742028206e65775f706172616d6574657273207c3e206d61785f636f6c6c61746572616c5f696e707574732029203d3d20536f6d652833290016153301f4913f6578706563742028206e65775f706172616d6574657273207c3e20636f6c6c61746572616c5f70657263656e746167652029203d3d20536f6d6528313530290016153301f491396578706563742028206e65775f706172616d6574657273207c3e206d61785f76616c75655f73697a652029203d3d20536f6d652835303030290016153301f4918c6578706563740a20202020202028206e65775f706172616d6574657273207c3e206d61785f626c6f636b5f657865637574696f6e5f756e6974732029203d3d20536f6d65280a2020202020202020457865637574696f6e556e697473207b206d656d6f72793a2036323030303030302c206370753a203230303030303030303030207d2c0a202020202020290016153301f491926578706563740a20202020202028206e65775f706172616d6574657273207c3e206d61785f7472616e73616374696f6e5f657865637574696f6e5f756e6974732029203d3d20536f6d65280a2020202020202020457865637574696f6e556e697473207b206d656d6f72793a2031343030303030302c206370753a203130303030303030303030207d2c0a2020202020202900162533333302600101c01c132533302300101d132533333302800101e01e01e132325333026001020132533333302b0010210210211325333028302b0031300f330293750008660526ea00052f5c00446eb4004084c0a0004c0a000cdd680080f18128009bac00101c01c153301e4901d56578706563740a20202020202028206e65775f706172616d6574657273207c3e207363726970745f657865637574696f6e5f7072696365732029203d3d20536f6d65280a2020202020202020536372697074457865637574696f6e507269636573207b0a202020202020202020206d656d6f72793a206578706563745f726174696f6e616c283537372c20315f303030292c0a202020202020202020206370753a206578706563745f726174696f6e616c283732312c20315f3030305f303030292c0a20202020202020207d2c0a202020202020290016153301e491306578706563742028206e65775f706172616d6574657273207c3e20636f73745f6d6f64656c732029203d3d204e6f6e650016153301e491476578706563742028206e65775f706172616d6574657273207c3e206d696e5f7574786f5f6465706f7369745f636f656666696369656e742029203d3d20536f6d652834333130290016153301e4913d6578706563742028206e65775f706172616d6574657273207c3e206d696e5f7374616b655f706f6f6c5f636f73742029203d3d20536f6d6528333430290016153301e491546578706563740a20202020202028206e65775f706172616d6574657273207c3e2074726561737572795f657870616e73696f6e2029203d3d20536f6d65286578706563745f726174696f6e616c28312c203529290016153301e491696578706563740a20202020202028206e65775f706172616d6574657273207c3e206d6f6e65746172795f657870616e73696f6e2029203d3d20536f6d65280a20202020202020206578706563745f726174696f6e616c28332c20315f303030292c0a202020202020290016153301e4916f6578706563740a20202020202028206e65775f706172616d6574657273207c3e207374616b655f706f6f6c5f706c656467655f696e666c75656e63652029203d3d20536f6d65280a20202020202020206578706563745f726174696f6e616c28332c203130292c0a202020202020290016253333330250010170171325333022001018132533333302700101901901913232533302500101b132533333302a00101c01c01c1325333027302a003132533302430193026375400226054604e6ea8004074cc028010004074dd680080e181380098138019bad0010193024001375800202e02e444646600200200844a666048002298103d87a8000132323253330233370e00e6eb4c09400c4c038cc0a0c0180052f5c026600a00a004604a0046050004604c0024464a66603a6024603e6ea80044c08cc080dd500080b1980180100091299980d98080008a60103d87a80001533301b33710002900009803198101803198101ba83003002330203750600600297ae04bd7009803198101803198101ba800233020375000297ae04bd701b814800054cc0652401476578706563742028206e65775f706172616d6574657273207c3e20646573697265645f6e756d6265725f6f665f7374616b655f706f6f6c732029203d3d20536f6d65283530302900161533019491466578706563742028206e65775f706172616d6574657273207c3e207374616b655f706f6f6c5f7265746972656d656e745f686f72697a6f6e2029203d3d20536f6d652831382900161533019491446578706563742028206e65775f706172616d6574657273207c3e207374616b655f706f6f6c5f6465706f7369742029203d3d20536f6d65283530305f3030305f3030302900161533019491486578706563742028206e65775f706172616d6574657273207c3e207374616b655f63726564656e7469616c5f6465706f7369742029203d3d20536f6d6528325f3030305f3030302900161533019491416578706563742028206e65775f706172616d6574657273207c3e206d61785f626c6f636b5f6865616465725f73697a652029203d3d20536f6d6528315f3130302900161533019491416578706563742028206e65775f706172616d6574657273207c3e206d61785f7472616e73616374696f6e5f73697a652029203d3d20536f6d652831365f3338342900161533019491406578706563742028206e65775f706172616d6574657273207c3e206d61785f626c6f636b5f626f64795f73697a652029203d3d20536f6d652839305f31313229001615330194913e6578706563742028206e65775f706172616d6574657273207c3e206d696e5f6665655f636f6e7374616e742029203d3d20536f6d65283135355f33383129001615330194913c6578706563742028206e65775f706172616d6574657273207c3e206d696e5f6665655f636f656666696369656e742029203d3d20536f6d65283434290016253333330200010130130131375a002026444646600200200844a66603e002298103d87a80001323232533301e3370e00e6eb4c08000c4c024cc08cdd41803000a5eb804cc014014008c080008c08c008c084004dd2a4000018018603460360046eacc064004c064004c050dd5000804180b180b980b98099baa001007301530160013011375400200a60266028602860206ea8004526153300e49011856616c696461746f722072657475726e65642066616c73650013656004370e90000018018018018018a998052481e86578706563742050726f706f73696e67280a202020202020302c0a20202020202050726f706f73616c50726f636564757265207b0a2020202020202020676f7665726e616e63655f616374696f6e3a2050726f746f636f6c506172616d6574657273207b0a20202020202020202020616e636573746f723a204e6f6e652c0a2020202020202020202067756172647261696c733a20536f6d65282e2e292c0a202020202020202020206e65775f706172616d65746572732c0a20202020202020207d2c0a20202020202020202e2e0a2020202020207d2c0a2020202029203d206374782e696e666f001615330094910b5f746d70313a20566f6964001615330084913565787065637420536f6d65287229203d20726174696f6e616c2e6e6577286e756d657261746f722c2064656e6f6d696e61746f72290016153300749132657870656374205b6e756d657261746f722c2064656e6f6d696e61746f725d3a204c6973743c496e743e203d20706172616d001615330064911965787065637420706172616d3a20496e74203d20706172616d00161533005491ff657870656374205b0a202020206d6f74696f6e5f6f665f6e6f5f636f6e666964656e63652c0a20202020636f6e737469747574696f6e616c5f636f6d6d69747465652c0a20202020636f6e737469747574696f6e616c5f636f6d6d69747465655f756e6465725f6e6f5f636f6e666964656e63652c0a20202020636f6e737469747574696f6e2c0a20202020686172645f666f726b2c0a2020202070726f746f636f6c5f706172616d65746572735f6e6574776f726b5f67726f75702c0a2020202070726f746f636f6c5f706172616d65746572735f65636f6e6f6d69635f67726f75702c0a2020202070726f746f636f6c5f706172616d65746572735f746a6563686e6963616c5f67726f75702c0a2020202070726f746f636f6c5f706172616d65746572735f676f7665726e616e63655f67726f75702c0a2020202074726561737572795f7769746864726177616c2c0a20205d3a204c6973743c446174613e203d20706172616d00161533004491c4657870656374205b0a202020206d6f74696f6e5f6f665f6e6f5f636f6e666964656e63652c0a20202020636f6e737469747574696f6e616c5f636f6d6d69747465652c0a20202020636f6e737469747574696f6e616c5f636f6d6d69747465655f756e6465725f6e6f5f636f6e666964656e63652c0a20202020686172645f666f726b2c0a2020202070726f746f636f6c5f706172616d65746572735f73656375726974795f67726f75702c0a20205d3a204c6973743c446174613e203d20706172616d0016153300349127657870656374205b6d656d6f72792c206370755d3a204c6973743c496e743e203d20706172616d0016153300249128657870656374205b6d656d6f72792c206370755d3a204c6973743c446174613e203d20706172616d00165734ae7155ceaab9e5573eae815d0aba257481", + "hash": "d0c1c15d5bbd5711902cc8ab659d1ee3af41e44bb7ece80cd9225b48" + }, + { + "title": "simple_spend.spend", + "datum": { + "title": "_tmp1", + "schema": { + "$ref": "#/definitions/Void" + } + }, + "redeemer": { + "title": "_tmp2", + "schema": { + "$ref": "#/definitions/Void" + } + }, + "compiledCode": "5909bd010100323232323232323232323232322533333300e00115332330073001300937540042a66601660146ea8008494cccccc04000454ccc020c008c028dd50008a99980618059baa001125333009323232323253330123758600660226ea8c014c044dd50030a9998091bac3014301530113754600a60226ea801854ccc048dd6180a180a980a980a980a980a980a980a980a98089baa30053011375400c2a66601c66e1d2054375a6028602a602a602a60226ea8c014c044dd5003099299980799baf4c101a0003015301630163016301630163016301630163016301630123754600c60246ea801c5288a9980824932657870656374205b5d203d3d20646963742e746f5f7061697273286374782e7472616e73616374696f6e2e646174756d73290016533300e3375e98012fa1d87a9fd8799f5820000000000000000000000000000000000000000000000000000000000000000000ffffd8798000301430153015301530153015301530153015301530113754600a60226ea8018526153300f491ff6578706563740a202020205b0a20202020202050616972280a20202020202020205370656e64280a202020202020202020204f75747075745265666572656e6365207b0a2020202020202020202020207472616e73616374696f6e5f69643a20232230303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030222c0a2020202020202020202020206f75747075745f696e6465783a20302c0a202020202020202020207d2c0a2020202020202020292c0a2020202020202020766f696428292c0a202020202020292c0a202020205d203d3d207265640665656d6572730016153300f49120657870656374203432203d3d206374782e7472616e73616374696f6e2e6665650016153300f4912d657870656374205b5d203d206374782e7472616e73616374696f6e2e65787472615f7369676e61746f726965730016153300f4912c657870656374205b5d203d206374782e7472616e73616374696f6e2e7265666572656e63655f696e707574730016153300f49123657870656374205b5d203d206374782e7472616e73616374696f6e2e6f757470757473001632533301200100c132533301330160021323232325333013300d375a603260340042646464646464a66603266e1d2004301b3754603e0042a66466034600260386ea800854ccc068cdc7804245200000000000000000000000000000000000000000000000000000000000000000001533301a3375e6e98010dd3299980d25014bd6f7b6300991919800800a5eb7bdb180894ccc0840044cc088cdd82601014000374c00697adef6c60132323232533302133720910100002133026337609801014000374c00e00a2a66604266e3d22100002133026337609801014000374c00e00626604c66ec0dd48011ba600133006006003375660460066eb8c084008c094008c08c004c8cc0040052f5bded8c044a66604000226604266ec130010140004c01051a3b9aca00004bd6f7b630099191919299981019b90489000021330253376098010140004c01051a3b9aca0000005153330203371e9101000021330253376098010140004c01051a3b9aca0000003133025337606ea4008dd4000998030030019bad3022003375c60400046048004604400226464a6660386006603c6ea8c08800854ccc070c00cc078dd50008a4c03603660426044002603a6ea801854cc06d24013f657870656374207265736f6c7665645f696e7075745f76616c7565203d3d206173736574732e66726f6d5f6c6f76656c6163652831303030303030303030290016153301b491606578706563740a202020207472616e73616374696f6e5f6964203d3d20232230303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030220016370e900100b80b980f180f800980f0011bab301c001301c002301a001301637540060226eb8c060004c050dd5180b801180b180b80098091baa00100d30140013758600860206ea8c010c040dd5002a99980619baf4c0132d87a9fd8799f5820000000000000000000000000000000000000000000000000000000000000000000ffd8799fd87980ffff003001300f37540082930a99806a49cd6578706563740a202020205370656e64696e67280a2020202020204f75747075745265666572656e6365207b0a20202020202020207472616e73616374696f6e5f69643a20232230303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030222c0a20202020202020206f75747075745f696e6465783a20302c0a2020202020207d2c0a202020202020536f6d6528766f69642829292c0a2020202029203d3d20696e666f00162301230133013001533300a3371e910120c6fbd346681a8f8337f6b3e51e6ec973f1509367eabc3a44c849af58a1d8471b00375c602060226022602260226022602260226022602260226022601a6ea8c004c034dd50010a4c2a66016921546578706563740a2020202023226336666264333436363831613866383333376636623365353165366563393733663135303933363765616263336134346338343961663538613164383437316222203d3d206964001623010001149854cc0292411856616c696461746f722072657475726e65642066616c73650013656004004004004004004004370e90000018018018018018a99802a4810b5f746d70323a20566f6964001615330044910b5f746d70313a20566f696400161533003491ff657870656374205b0a20202020496e707574207b0a2020202020206f75747075745f7265666572656e63653a204f75747075745265666572656e6365207b207472616e73616374696f6e5f69642c206f75747075745f696e6465783a2030207d2c0a2020202020206f75747075743a204f7574707574207b0a2020202020202020616464726573732c0a202020202020202076616c75653a207265736f6c7665645f696e7075745f76616c75652c0a2020202020202020646174756d3a20496e6c696e65446174756d285f292c0a20202020202020207265666572656e63655f7363726970743a204e6f6e652c0a2020202020207d2c0a202020207d2c0a200b205d203d20696e7075747300161533002491566578706563742041646472657373207b207061796d656e745f63726564656e7469616c3a20536372697074285f292c207374616b655f63726564656e7469616c3a204e6f6e65207d203d0a202020206164647265737300165734ae7155ceaab9e5573eae815d0aba257481", + "hash": "795cd91c67f5028dbe15907cdc13c12c9bf9059ed6939e34c2b3db15" + }, + { + "title": "voting.script", + "redeemer": { + "title": "_tmp0", + "schema": { + "$ref": "#/definitions/Data" + } + }, + "compiledCode": "590b6501010032323232323232323232323222533300632323232323232533300d3006300f37540022646464a666020601260246ea800854cc8cc044c004c04cdd5180b980a1baa0031533301500200e13253330163019003132323253330153005375a603660380042a66602a600a602e6ea800c54ccc054cdc7800a44120999999999999999999999999999999999999999999999999999999999999999900153330153375e98158d8799f9fd8799fd8799f581c00000000000000000000000000000000000000000000000000000000ffffa1d8799f582099999999999999999999999999999999999999999999999999999999999999991898ffd87980ffff003300a00c480084c94ccc058c03cc060dd50008991919299980c9804980d9baa002153330193009301b3754603e60386ea800854ccc07400405c54ccc064cdd7a61abd8799f9fd87a9fd8799f581c00000000000000000000000000000000000000000000000000000000ffffa3d8799f5820777777777777777777777777777777777777777777777777777777777777777702ffd87b80d8799f5820888888888888888888888888888888888888888888888888888888888888888801ffd87b80d8799f5820999999999999999999999999999999999999999999999999999999999999999900ffd87b80ffff003300e010480184c94ccc068c04cc070dd50008991919299980e99b8748010c07cdd5001099299981100100e8a99980f19b8f0014891c000000000000000000000000000000000000000000000000000000000014a22a6603e9211865787065637420706f6f6c5f6964203d3d206f6e6c7930730016375c604660406ea8008070dd5980f801180e8009919bb030210013021302200137586040603a6ea8004064cc0380412008153301a491ff6578706563740a202020202020536f6d65280a2020202020202020506169722844656c6567617465526570726573656e74617469766528566572696669636174696f6e4b6579286f6e6c79307329292c0a20202020202020205b0a202020202020202020205061697228476f7665726e616e6365416374696f6e4964207b207472616e73616374696f6e3a206f6e6c7937732c2070726f706f73616c5f70726f6365647572653a2032207d2c0a202020202020202020204162737461696e292c0a202020202020202020205061697228476f7665726e616e6365416374696f6e4964207b207472616e73616374696f6e3a206f6e6c7938732c2070726f706fb673616c5f70726f6365647572653a2031207d2c0a202020202020202020204162737461696e292c0a202020202020202020205061697228476f7665726e616e6365416374696f6e4964207b207472616e73616374696f6e3a206f6e6c7939732c2070726f706f73616c5f70726f6365647572653a2030207d2c0a202020202020202020204162737461696e292c0a20202020202020205d292c0a20202020202029203d3d206c6973742e617428766f7465732c20332900160170173756603600460320026466ec0c074004c074c078004dd6180e180c9baa0010143300a00c4801054cc0592401ff6578706563740a202020202020536f6d65280a20202020202020205061697228436f6e737469747574696f6e616c436f6d6d69747465654d656d62657228566572696669636174696f6e4b6579286f6e6c79307329292c0a20202020202020205b0a202020202020202020205061697228476f7665726e616e6365416374696f6e4964207b0a2020202020202020202020207472616e73616374696f6e3a206f6e6c7939732c0a20202020202020202020202070726f706f73616c5f70726f6365647572653a203135322c0a202020202020202020207d2c0a202020202020202020204e6f292c0a20202020202020205d292c0a20202020202029203d3d20116c6973742e617428766f7465732c203129001615330164911c657870656374207472616e73616374696f6e203d3d206f6e6c7939730016012012375c6034002602c6ea8c054008c05400403cc05c008dc3a400401a01a6eacc048008c040004c8cdd8180a000980a180a8009bac301330103754002014660020069000180080091129998088010a60103d87a800013232533300f300800313374a90001980a1ba73301430110023301430120024bd7025eb804ccc014014004c02400cc05400cc04c008dd5980798081808180818081808180818081808180818081808180818061baa300f300c375400866464646464644a66601e64a6666660300042a666020601260246ea80084c94ccc0540040084c94cccccc06800400c00c00c4c94ccc05cc06800c54ccc04ccdc3a40a80022a660286e64cc0180152210014a20080086eb400400cc05c004c04cdd5001000800800800800899299999980c0010a999808180498091baa00215333014301337540042a660226e64cc00d300103d879800048810014a20020020020020020022940526153301049010f6578706563742069735f76616c69640016300100122253332333301800313232323232323300c0020013371491010128000025333014337100069007099b80483c80400c54ccc050cdc4001a410004266e00cdc0241002800690068b299980b800899b8a4881035b5d2900005133714911035b5f2000333300800133714911025d2900005223330090090023006001223330090090020013758602a0046eb4c04c004c8cdd81ba83013001374e60280026ea800c4c94ccc0540044cdc52441027b7d00003133714911037b5f2000323233001001003225333018001100315333018301b0011323330090093017001337149101023a20003330090093018001004301a0011323330090093017001337149101023a20003330090093018001300633003003301c002301a0013371491102207d000033756006264a66602a002266e29221025b5d00003133714911035b5f2000333300600133714911015d000032233300700700230040012233300700700200137580066e292201022c2000133005375a0040022646466e2922010268270000132333001001300b371a00466e292201012700003222533301333710004900008008991919199803003180800299b8b33700004a66602c66e2000920141481805206e3371666e000054ccc058cdc4000a4028290300a40dc00866e18009202033706002901019b8e004002375c0044444646600200200a44a66602a002200a2a66602a6030002266006602e00200a266008602e00266004004603000244646600200200644a66601c600e002266e2922010130000031533300e337100029000099b8a489012d003300200233702900000089980299b8400148050cdc599b803370a002900a240c00066002002444a66601666e2400920001001133300300333708004900a19b8b3370066e14009201448180004c038c03cc02cdd50019b8748000dc0240022930a99803a4811856616c696461746f722072657475726e65642066616c7365001365615330044901ab65787065637420536f6d65280a2020202020205061697228436f6e737469747574696f6e616c436f6d6d69747465654d656d62657228536372697074282e2e29292c0a2020202020205b5061697228476f7665726e616e6365416374696f6e4964207b207472616e73616374696f6e2c2070726f706f73616c5f70726f6365647572653a2031207d2c20596573295d292c0a2020202029203d206c6973742e617428766f7465732c203029001615330034915865787065637420536f6d6528506169722844656c6567617465526570726573656e74617469766528536372697074282e2e29292c205b5f2c202e2e5d2929203d0a2020202020206c6973742e617428766f7465732c203229001615330024914265787065637420536f6d652850616972285374616b65506f6f6c28706f6f6c5f6964292c205b5f2c202e2e5d2929203d206c6973742e617428766f7465732c20342900165734ae7155ceaab9e5573eae815d0aba257481", + "hash": "1282253bfd18df713e867324c09c7cb9c2dea6d11e3fb9c1cfdb7057" + }, + { + "title": "withdraw.spend", + "datum": { + "title": "_tmp0", + "schema": { + "$ref": "#/definitions/Void" + } + }, + "redeemer": { + "title": "_tmp1", + "schema": { + "$ref": "#/definitions/RedeemerWrapper$Void" + } + }, + "compiledCode": "5908150101003232323232323232323232322232533333300f00215323330083001300a37540062a660129212052756e6e696e672032206172672076616c696461746f7220776974686472617700135333333010004153330083001300a37540082a66601860166ea8010494ccc024c8c94ccc02ccdc3a4008601a6ea80044c94ccc030cdc3a4004601c6ea80044c8c94cc8cc03ccdd798009980a26010ad8799fd87980d87a80ff00330143001330143374a90011980a2601091b000001739c890420004bd701980a199807a504c103d87a80004c0103d87980004bd7025eb80c054c058c058c058c058c058c058c058c048dd5180118091baa007132323253330123375e980154d8799fd8799fd8799f581c00000000000000000000000000000000000000000000000000000000ffd8799fd8799fd87a9f581c11111111111111111111111111111111111111111111111111111111ffffffffff00330010034800054ccc048cdd7a613ad8799fd8799fd8799f581c00000000000000000000000000000000000000000000000000000000ffd8799fd87a9f1a00261ec3181b03ffffffff00330010034800854ccc048cdd7a613ad8799fd8799fd87a9f581c11111111111111111111111111111111111111111111111111111111ffd8799fd87a9f1a00261ec3181b03ffffffff00330010034801054ccc048cdd79ba6330173376066e95200233017375200c97ae04c1010000330174bded8c0122d8799f581c00000000000000000000000000000000000000000000000000000000ff0001010e004bd6f7b630180c180c980c980c980c980c980c980a9baa300530153754014294454cc04d2401706578706563740a2020202020205b5061697228536372697074286d795f7363726970745f68617368292c2030292c205061697228566572696669636174696f6e4b6579286f6e6c793073292c203134295d203d3d206374782e7472616e73616374696f6e2e7769746864726177616c7300161533013491b96578706563740a202020202020536f6d65280a202020202020202041646472657373207b0a202020202020202020207061796d656e745f63726564656e7469616c3a20536372697074286f6e6c793173292c0a202020202020202020207374616b655f63726564656e7469616c3a20536f6d6528506f696e74657228323439383234332c2032372c203329292c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286164647265737365732c20322900161533013491c26578706563740a202020202020536f6d65280a202020202020202041646472657373207b0a202020202020202020207061796d656e745f63726564656e7469616c3a20566572696669636174696f6e4b6579286f6e6c793073292c0a202020202020202020207374616b655f63726564656e7469616c3a20536f6d6528506f696e74657228323439383234332c2032372c203329292c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286164647265737365732c20312900161533013491c16578706563740a202020202020536f6d65280a202020202020202041646472657373207b0a202020202020202020207061796d656e745f63726564656e7469616c3a20566572696669636174696f6e4b6579286f6e6c793073292c0a202020202020202020207374616b655f63726564656e7469616c3a20536f6d6528496e6c696e6528536372697074286f6e6c7931732929292c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286164647265737365732c20302900163001001222533301700214c103d87a8000132325333015300e003130073301a0024bd70099980280280099b8000348004c06c00cc064008c8cc004004dd6180398099baa30033013375401044a66602a002297ae0133016300430143754602e0026600400460300026e952000153300f4901566578706563740a202020202020696e74657276616c2e656e746972656c795f6265666f7265283135393630353930393230303029203d3d206374782e7472616e73616374696f6e2e76616c69646974795f72616e6765001623014001375c6024601e6ea800402cc044c038dd5000805180098069baa0022301030113011001149854cc0292411856616c696461746f722072657475726e65642066616c7365001365600600600600600600600315330094911d52756e6e696e672033206172672076616c696461746f72207370656e6400135333333010004153330083001300a37540082a66601860166ea8010494cccccc04400454ccc024c008c02cdd50008a99980698061baa00112533300a4a22930a99805a491856616c696461746f722072657475726e65642066616c73650013656006006006006006006006006006006006006300e300b37540066e1d2000153300800116153300800116153300800116153300800116490191496e636f72726563742072656465656d6572207479706520666f722076616c696461746f72207370656e642e0a2020202020202020202020202020202020202020446f75626c6520636865636b20796f7520686176652077726170706564207468652072656465656d657220747970652061732073706563696669656420696e20796f757220706c757475732e6a736f6e0015330044910b5f746d70313a20566f6964001615330034910b5f746d70303a20566f69640016153300249135657870656374205769746864726177696e6728536372697074286d795f7363726970745f686173682929203d206374782e696e666f00165734ae7155ceaab9e5573eae815d0aba257481", + "hash": "21fac9728b25964132635f0eb1931afea5e21572e2fd3766a05a648d" + }, + { + "title": "withdraw.withdraw", + "redeemer": { + "title": "_tmp0", + "schema": { + "$ref": "#/definitions/Void" + } + }, + "compiledCode": "5908150101003232323232323232323232322232533333300f00215323330083001300a37540062a660129212052756e6e696e672032206172672076616c696461746f7220776974686472617700135333333010004153330083001300a37540082a66601860166ea8010494ccc024c8c94ccc02ccdc3a4008601a6ea80044c94ccc030cdc3a4004601c6ea80044c8c94cc8cc03ccdd798009980a26010ad8799fd87980d87a80ff00330143001330143374a90011980a2601091b000001739c890420004bd701980a199807a504c103d87a80004c0103d87980004bd7025eb80c054c058c058c058c058c058c058c058c048dd5180118091baa007132323253330123375e980154d8799fd8799fd8799f581c00000000000000000000000000000000000000000000000000000000ffd8799fd8799fd87a9f581c11111111111111111111111111111111111111111111111111111111ffffffffff00330010034800054ccc048cdd7a613ad8799fd8799fd8799f581c00000000000000000000000000000000000000000000000000000000ffd8799fd87a9f1a00261ec3181b03ffffffff00330010034800854ccc048cdd7a613ad8799fd8799fd87a9f581c11111111111111111111111111111111111111111111111111111111ffd8799fd87a9f1a00261ec3181b03ffffffff00330010034801054ccc048cdd79ba6330173376066e95200233017375200c97ae04c1010000330174bded8c0122d8799f581c00000000000000000000000000000000000000000000000000000000ff0001010e004bd6f7b630180c180c980c980c980c980c980c980a9baa300530153754014294454cc04d2401706578706563740a2020202020205b5061697228536372697074286d795f7363726970745f68617368292c2030292c205061697228566572696669636174696f6e4b6579286f6e6c793073292c203134295d203d3d206374782e7472616e73616374696f6e2e7769746864726177616c7300161533013491b96578706563740a202020202020536f6d65280a202020202020202041646472657373207b0a202020202020202020207061796d656e745f63726564656e7469616c3a20536372697074286f6e6c793173292c0a202020202020202020207374616b655f63726564656e7469616c3a20536f6d6528506f696e74657228323439383234332c2032372c203329292c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286164647265737365732c20322900161533013491c26578706563740a202020202020536f6d65280a202020202020202041646472657373207b0a202020202020202020207061796d656e745f63726564656e7469616c3a20566572696669636174696f6e4b6579286f6e6c793073292c0a202020202020202020207374616b655f63726564656e7469616c3a20536f6d6528506f696e74657228323439383234332c2032372c203329292c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286164647265737365732c20312900161533013491c16578706563740a202020202020536f6d65280a202020202020202041646472657373207b0a202020202020202020207061796d656e745f63726564656e7469616c3a20566572696669636174696f6e4b6579286f6e6c793073292c0a202020202020202020207374616b655f63726564656e7469616c3a20536f6d6528496e6c696e6528536372697074286f6e6c7931732929292c0a20202020202020207d2c0a20202020202029203d3d206c6973742e6174286164647265737365732c20302900163001001222533301700214c103d87a8000132325333015300e003130073301a0024bd70099980280280099b8000348004c06c00cc064008c8cc004004dd6180398099baa30033013375401044a66602a002297ae0133016300430143754602e0026600400460300026e952000153300f4901566578706563740a202020202020696e74657276616c2e656e746972656c795f6265666f7265283135393630353930393230303029203d3d206374782e7472616e73616374696f6e2e76616c69646974795f72616e6765001623014001375c6024601e6ea800402cc044c038dd5000805180098069baa0022301030113011001149854cc0292411856616c696461746f722072657475726e65642066616c7365001365600600600600600600600315330094911d52756e6e696e672033206172672076616c696461746f72207370656e6400135333333010004153330083001300a37540082a66601860166ea8010494cccccc04400454ccc024c008c02cdd50008a99980698061baa00112533300a4a22930a99805a491856616c696461746f722072657475726e65642066616c73650013656006006006006006006006006006006006006300e300b37540066e1d2000153300800116153300800116153300800116153300800116490191496e636f72726563742072656465656d6572207479706520666f722076616c696461746f72207370656e642e0a2020202020202020202020202020202020202020446f75626c6520636865636b20796f7520686176652077726170706564207468652072656465656d657220747970652061732073706563696669656420696e20796f757220706c757475732e6a736f6e0015330044910b5f746d70313a20566f6964001615330034910b5f746d70303a20566f69640016153300249135657870656374205769746864726177696e6728536372697074286d795f7363726970745f686173682929203d206374782e696e666f00165734ae7155ceaab9e5573eae815d0aba257481", + "hash": "21fac9728b25964132635f0eb1931afea5e21572e2fd3766a05a648d" + } + ], + "definitions": { + "Data": { + "title": "Data", + "description": "Any Plutus data." + }, + "RedeemerWrapper$Void": { + "title": "Wrapped Redeemer", + "description": "A redeemer wrapped in an extra constructor to make multi-validator detection possible on-chain.", + "anyOf": [ + { + "dataType": "constructor", + "index": 1, + "fields": [ + { + "$ref": "#/definitions/Void" + } + ] + } + ] + }, + "Void": { + "title": "Unit", + "description": "The nullary constructor.", + "anyOf": [ + { + "dataType": "constructor", + "index": 0, + "fields": [] + } + ] + } + } +} \ No newline at end of file diff --git a/examples/acceptance_tests/script_context/v3/test.sh b/examples/acceptance_tests/script_context/v3/test.sh new file mode 100755 index 00000000..1748b7af --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/test.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env bash + +TITLE=$1 +if [ -z $TITLE ]; then + echo -e "\033[31mMissing argument: \033[1mVALIDATOR_TITLE\033[0m" + echo "" + echo -e "\033[1mUsage: \033[0m" + echo " test.sh {ACCEPTANCE_TEST}" + echo "" + echo -e "\033[1mExample: \033[0m" + echo " test.sh basic" + exit 1 +fi + +AIKEN=${2:-"cargo run -r --quiet --"} + +if ! command -v jq &> /dev/null +then + echo -e "\033[1mjq\033[0m missing from system but required." + exit 1 +fi + +if ! command -v cbor-diag &> /dev/null +then + echo -e "\033[1mcbor-diag\033[0m missing from system but required." + exit 1 +fi + +$AIKEN build --filter-traces all -t verbose +if [ $? -ne 0 ]; then + exit $? +fi + +declare -a VALIDATORS=($(jq -c ".validators | map(select(.title|contains(\"$TITLE\"))) | .[]" plutus.json)) + +if [ -z $VALIDATORS ]; then + echo -e "\033[31mvalidator \033[1m$TITLE\033[0m\033[31m not found!\033[0m" + exit 1 +fi + +TRANSACTION=$(cat ctx/$TITLE/tx.template) +RESOLVED_INPUTS=$(cat ctx/$TITLE/resolved_inputs.template) + +for ITEM in ${VALIDATORS[@]}; do + VALIDATOR_NAME=$(echo $ITEM | jq -r .title) + VALIDATOR_HASH=$(echo $ITEM | jq -r .hash) + VALIDATOR=$(echo $ITEM | jq -r .compiledCode) + VALIDATOR_CBOR=$(echo "h'$VALIDATOR'" | cbor-diag --to hex --from diag) + + RESOLVED_INPUTS=$(echo $RESOLVED_INPUTS \ + | sed "s/{{ $VALIDATOR_NAME.cbor }}/$VALIDATOR_CBOR/g" \ + | sed "s/{{ $VALIDATOR_NAME.hash }}/$VALIDATOR_HASH/g") + + TRANSACTION=$(echo $TRANSACTION \ + | sed "s/{{ $VALIDATOR_NAME.cbor }}/$VALIDATOR/g" \ + | sed "s/{{ $VALIDATOR_NAME.hash }}/$VALIDATOR_HASH/g") +done + +echo $RESOLVED_INPUTS | cbor-diag --to hex --from diag > ctx/$TITLE/resolved_inputs.cbor + +echo $TRANSACTION | cbor-diag --to hex --from diag > ctx/$TITLE/tx.cbor + +$AIKEN tx simulate \ + ctx/$TITLE/tx.cbor \ + ctx/inputs.cbor \ + ctx/$TITLE/resolved_inputs.cbor diff --git a/examples/acceptance_tests/script_context/v3/validators/certificates.ak b/examples/acceptance_tests/script_context/v3/validators/certificates.ak new file mode 100644 index 00000000..5d5721c8 --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/validators/certificates.ak @@ -0,0 +1,207 @@ +use aiken/collection/list +use cardano/certificate.{ + AlwaysAbstain, AlwaysNoConfidence, AuthorizeConstitutionalCommitteeProxy, + DelegateBlockProduction, DelegateBoth, DelegateCredential, DelegateVote, + RegisterAndDelegateCredential, RegisterCredential, + RegisterDelegateRepresentative, RegisterStakePool, Registered, + RetireFromConstitutionalCommittee, RetireStakePool, UnregisterCredential, + UnregisterDelegateRepresentative, UpdateDelegateRepresentative, +} +use cardano/credential.{Script, VerificationKey} +use cardano/transaction.{Publishing, ScriptContext, ScriptInfo} + +const only0s = #"00000000000000000000000000000000000000000000000000000000" + +const only1s = #"11111111111111111111111111111111111111111111111111111111" + +const only2s = #"22222222222222222222222222222222222222222222222222222222" + +const only9s = + #"9999999999999999999999999999999999999999999999999999999999999999" + +validator { + fn script(_tmp1: Void, ctx: ScriptContext) -> Bool { + assert_script_info(ctx.info) + + let certificates = ctx.transaction.certificates + + expect Some(10_000_000) = ctx.transaction.current_treasury_amount + + expect Some(14) = ctx.transaction.treasury_donation + + expect + Some(RegisterCredential { credential: Script(only2s), deposit: None }) == list.at( + certificates, + 0, + ) + + expect + Some( + RegisterCredential { + credential: VerificationKey(only0s), + deposit: None, + }, + ) == list.at(certificates, 1) + + expect + Some( + UnregisterCredential { + credential: VerificationKey(only0s), + refund: None, + }, + ) == list.at(certificates, 2) + + expect + Some(RegisterStakePool { stake_pool: only1s, vrf: only9s }) == list.at( + certificates, + 3, + ) + + expect + Some(RetireStakePool { stake_pool: only1s, at_epoch: 1337 }) == list.at( + certificates, + 4, + ) + + expect + Some( + RegisterCredential { + credential: VerificationKey(only0s), + deposit: Some(3_000_000), + }, + ) == list.at(certificates, 5) + + expect + Some( + UnregisterCredential { + credential: VerificationKey(only0s), + refund: Some(3_000_000), + }, + ) == list.at(certificates, 6) + + expect + Some( + DelegateCredential { + credential: VerificationKey(only0s), + delegate: DelegateVote(Registered(VerificationKey(only0s))), + }, + ) == list.at(certificates, 7) + + expect + Some( + DelegateCredential { + credential: VerificationKey(only0s), + delegate: DelegateVote(Registered(Script(only0s))), + }, + ) == list.at(certificates, 8) + + expect + Some( + DelegateCredential { + credential: VerificationKey(only0s), + delegate: DelegateVote(AlwaysAbstain), + }, + ) == list.at(certificates, 9) + + expect + Some( + DelegateCredential { + credential: VerificationKey(only0s), + delegate: DelegateVote(AlwaysNoConfidence), + }, + ) == list.at(certificates, 10) + + expect + Some( + DelegateCredential { + credential: VerificationKey(only0s), + delegate: DelegateBoth { + stake_pool: only1s, + delegate_representative: AlwaysNoConfidence, + }, + }, + ) == list.at(certificates, 11) + + expect + Some( + RegisterAndDelegateCredential { + credential: VerificationKey(only0s), + delegate: DelegateBlockProduction(only1s), + deposit: 3_000_000, + }, + ) == list.at(certificates, 12) + + expect + Some( + RegisterAndDelegateCredential { + credential: VerificationKey(only0s), + delegate: DelegateVote(AlwaysNoConfidence), + deposit: 3_000_000, + }, + ) == list.at(certificates, 13) + + expect + Some( + RegisterAndDelegateCredential { + credential: VerificationKey(only0s), + delegate: DelegateBoth { + stake_pool: only1s, + delegate_representative: AlwaysNoConfidence, + }, + deposit: 3_000_000, + }, + ) == list.at(certificates, 14) + + expect + Some( + AuthorizeConstitutionalCommitteeProxy { + constitutional_committee_member: VerificationKey(only0s), + proxy: VerificationKey(only2s), + }, + ) == list.at(certificates, 15) + + expect + Some( + RetireFromConstitutionalCommittee { + constitutional_committee_member: VerificationKey(only0s), + }, + ) == list.at(certificates, 16) + + expect + Some( + RegisterDelegateRepresentative { + delegate_representative: VerificationKey(only0s), + deposit: 3_000_000, + }, + ) == list.at(certificates, 17) + + expect + Some( + UnregisterDelegateRepresentative { + delegate_representative: VerificationKey(only0s), + refund: 3_000_000, + }, + ) == list.at(certificates, 18) + + expect + Some( + UpdateDelegateRepresentative { + delegate_representative: VerificationKey(only0s), + }, + ) == list.at(certificates, 19) + + expect Some(DelegateCredential { + credential: Script(..), + delegate: DelegateBlockProduction(..), + }) = list.at(certificates, 20) + + True + } +} + +fn assert_script_info(info: ScriptInfo) { + expect Publishing(20, DelegateCredential { credential, delegate }) = info + expect DelegateBlockProduction { stake_pool: only1s } == delegate + expect Script(..) = credential + Void +} diff --git a/examples/acceptance_tests/script_context/v3/validators/mint.ak b/examples/acceptance_tests/script_context/v3/validators/mint.ak new file mode 100644 index 00000000..51b1d80f --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/validators/mint.ak @@ -0,0 +1,128 @@ +use aiken/collection/dict.{Dict} +use aiken/collection/list +use cardano/assets.{PolicyId, Value} +use cardano/credential +use cardano/transaction.{ + DatumHash, Input, Mint, Minting, NoDatum, Output, OutputReference, + ScriptContext, ScriptInfo, ScriptPurpose, +} + +const null28 = #"00000000000000000000000000000000000000000000000000000000" + +const null32 = + #"0000000000000000000000000000000000000000000000000000000000000000" + +const void_hash = + #"923918e403bf43c34b4ef6b48eb2ee04babed17320d8d1b9ff9ad086e86f44ec" + +validator { + fn mint_1(_tmp2: Data, ctx: ScriptContext) { + let our_policy_id = assert_script_info(ctx.info) + let other_policy_id = assert_redeemers(ctx.transaction.redeemers) + assert_outputs(ctx.transaction.outputs, our_policy_id, other_policy_id) + assert_mint(ctx.transaction.mint, our_policy_id, other_policy_id) + assert_reference_inputs(ctx.transaction.reference_inputs) + assert_datums(ctx.transaction.datums) + True + } +} + +fn assert_reference_inputs(inputs: List) -> Void { + expect + [ + Input { + output_reference: OutputReference { + transaction_id: null32, + output_index: 0, + }, + output: Output { + address: credential.from_verification_key(null28), + value: assets.from_lovelace(1_000_000), + datum: NoDatum, + reference_script: None, + }, + }, + ] == inputs + Void +} + +fn assert_script_info(info: ScriptInfo) -> PolicyId { + expect Minting(policy_id) = info + policy_id +} + +fn assert_redeemers(redeemers: Pairs) -> PolicyId { + expect [Pair(Mint(other_policy_id), data), _] = redeemers + expect Void = data + other_policy_id +} + +fn assert_datums(datums: Dict) -> Void { + let void: Data = Void + expect [Pair(void_hash, void)] == dict.to_pairs(datums) + Void +} + +fn assert_outputs( + outputs: List, + our_policy_id: PolicyId, + other_policy_id: PolicyId, +) { + expect list.length(outputs) == 3 + + expect + Some( + Output { + address: credential.from_verification_key(null28), + value: assets.from_lovelace(1_000_000), + datum: DatumHash(void_hash), + reference_script: None, + }, + ) == list.at(outputs, 0) + + expect + Some( + Output { + address: credential.from_verification_key(null28) + |> credential.with_delegation_key(null28), + value: assets.from_lovelace(1_000_000) + |> assets.add(our_policy_id, "tuna", 100000000000000) + |> assets.add(other_policy_id, "aiken", 42), + datum: NoDatum, + reference_script: None, + }, + ) == list.at(outputs, 1) + + expect + Some( + Output { + address: credential.from_script(null28) + |> credential.with_delegation_key(null28), + value: assets.from_lovelace(1_000_000) + |> assets.add(other_policy_id, "cardano", 1), + datum: NoDatum, + reference_script: Some( + #"68ad54b3a8124d9fe5caaaf2011a85d72096e696a2fb3d7f86c41717", + ), + }, + ) == list.at(outputs, 2) + + Void +} + +fn assert_mint(mint: Value, our_policy_id: PolicyId, other_policy_id: PolicyId) { + expect + [ + (other_policy_id, "aiken", -14), + (other_policy_id, "cardano", 1), + (our_policy_id, "tuna", 100000000000000), + ] == assets.flatten(mint) + Void +} + +validator { + fn mint_2(_tmp2: Void, _ctx: ScriptContext) { + trace @"_____mint_2_____" + True + } +} diff --git a/examples/acceptance_tests/script_context/v3/validators/proposing_all.ak b/examples/acceptance_tests/script_context/v3/validators/proposing_all.ak new file mode 100644 index 00000000..7ca68dde --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/validators/proposing_all.ak @@ -0,0 +1,154 @@ +use aiken/collection/list +use aiken/math/rational +use cardano/credential.{Script, VerificationKey} +use cardano/governance.{ + Constitution, ConstitutionalCommittee, GovernanceAction, GovernanceActionId, + HardFork, NewConstitution, NicePoll, NoConfidence, ProposalProcedure, + ProtocolVersion, TreasuryWithdrawal, +} +use cardano/transaction.{Propose, Redeemer, ScriptContext, ScriptPurpose} + +const null28 = #"00000000000000000000000000000000000000000000000000000000" + +const null32 = + #"0000000000000000000000000000000000000000000000000000000000000000" + +validator { + fn guardrails(_tmp1: Void, ctx: ScriptContext) -> Bool { + let procedures = ctx.transaction.proposal_procedures + + assert_redeemers(ctx.transaction.redeemers) + + assert_proposal_procedure( + list.at(procedures, 0), + fn(action) { + expect + HardFork { ancestor: None, new_version: ProtocolVersion(10, 0) } == action + Void + }, + ) + + assert_proposal_procedure( + list.at(procedures, 1), + fn(action) { + expect + HardFork { + ancestor: Some(GovernanceActionId(null32, 0)), + new_version: ProtocolVersion(11, 0), + } == action + Void + }, + ) + + assert_proposal_procedure( + list.at(procedures, 2), + fn(action) { + expect + TreasuryWithdrawal { + beneficiaries: [ + Pair( + VerificationKey( + #"11111111111111111111111111111111111111111111111111111111", + ), + 1_000_000, + ), + ], + guardrails: None, + } == action + Void + }, + ) + + assert_proposal_procedure( + list.at(procedures, 3), + fn(action) { + expect TreasuryWithdrawal { guardrails: Some(..), .. } = action + Void + }, + ) + + assert_proposal_procedure( + list.at(procedures, 4), + fn(action) { + expect NoConfidence { ancestor: None } == action + Void + }, + ) + + assert_proposal_procedure( + list.at(procedures, 5), + fn(action) { + expect Some(quorum) = rational.new(1, 2) + expect + ConstitutionalCommittee { + ancestor: None, + evicted_members: [VerificationKey(null28)], + added_members: [Pair(VerificationKey(null28), 500)], + quorum, + } == action + Void + }, + ) + + assert_proposal_procedure( + list.at(procedures, 6), + fn(action) { + expect + NewConstitution { + ancestor: None, + constitution: Constitution { guardrails: None }, + } == action + Void + }, + ) + + assert_proposal_procedure( + list.at(procedures, 7), + fn(action) { + expect + NewConstitution { + ancestor: None, + constitution: Constitution { guardrails: Some(null28) }, + } == action + Void + }, + ) + + assert_last_proposal_procedure(list.at(procedures, 8)) + + True + } +} + +fn assert_redeemers(redeemers: Pairs) -> Void { + expect [ + Pair(Propose( + 3, + ProposalProcedure { deposit, return_address, governance_action }, + ), + data), + ] = redeemers + expect deposit == 2_000_000 + expect return_address == Script(null28) + expect TreasuryWithdrawal { .. } = governance_action + expect Void = data + Void +} + +fn assert_proposal_procedure( + procedure: Option, + with: fn(GovernanceAction) -> Void, +) -> Void { + expect Some(procedure) = procedure + expect procedure.deposit == 2_000_000 + expect procedure.return_address == Script(null28) + with(procedure.governance_action) +} + +fn assert_last_proposal_procedure(procedure: Option) -> Void { + expect Some(procedure) = procedure + expect procedure.deposit == 2_000_000 + expect procedure.return_address == VerificationKey(null28) + expect procedure.governance_action == NicePoll + Void +} diff --git a/examples/acceptance_tests/script_context/v3/validators/proposing_pparams.ak b/examples/acceptance_tests/script_context/v3/validators/proposing_pparams.ak new file mode 100644 index 00000000..72f984dc --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/validators/proposing_pparams.ak @@ -0,0 +1,173 @@ +use aiken/math/rational.{Rational} +use cardano/governance.{ProposalProcedure, ProtocolParameters} +use cardano/governance/protocol_parameters.{ + ConstitutionalCommitteeThresholds, DelegateRepresentativeVotingThresholds, + ExecutionUnits, ProtocolParametersThresholds, ScriptExecutionPrices, + StakePoolOperatorVotingThresholds, collateral_percentage, cost_models, + delegate_representative_deposit, delegate_representative_max_idle_time, + delegate_representative_voting_thresholds, desired_number_of_stake_pools, + governance_proposal_deposit, governance_proposal_lifetime, max_block_body_size, + max_block_execution_units, max_block_header_size, max_collateral_inputs, + max_constitutional_committee_mandate, max_transaction_execution_units, + max_transaction_size, max_value_size, min_constitutional_committee_size, + min_fee_coefficient, min_fee_constant, min_stake_pool_cost, + min_utxo_deposit_coefficient, monetary_expansion, + reference_scripts_tier_fee_initial_factor, script_execution_prices, + stake_credential_deposit, stake_pool_deposit, + stake_pool_operator_voting_thresholds, stake_pool_pledge_influence, + stake_pool_retirement_horizon, treasury_expansion, +} +use cardano/transaction.{Proposing, ScriptContext} + +validator { + fn guardrails(_tmp1: Void, ctx: ScriptContext) -> Bool { + expect Proposing( + 0, + ProposalProcedure { + governance_action: ProtocolParameters { + ancestor: None, + guardrails: Some(..), + new_parameters, + }, + .. + }, + ) = ctx.info + + expect ( new_parameters |> min_fee_coefficient ) == Some(44) + + expect ( new_parameters |> min_fee_constant ) == Some(155_381) + + expect ( new_parameters |> max_block_body_size ) == Some(90_112) + + expect ( new_parameters |> max_transaction_size ) == Some(16_384) + + expect ( new_parameters |> max_block_header_size ) == Some(1_100) + + expect ( new_parameters |> stake_credential_deposit ) == Some(2_000_000) + + expect ( new_parameters |> stake_pool_deposit ) == Some(500_000_000) + + expect ( new_parameters |> stake_pool_retirement_horizon ) == Some(18) + + expect ( new_parameters |> desired_number_of_stake_pools ) == Some(500) + + expect + ( new_parameters |> stake_pool_pledge_influence ) == Some( + expect_rational(3, 10), + ) + + expect + ( new_parameters |> monetary_expansion ) == Some( + expect_rational(3, 1_000), + ) + + expect + ( new_parameters |> treasury_expansion ) == Some(expect_rational(1, 5)) + + expect ( new_parameters |> min_stake_pool_cost ) == Some(340) + + expect ( new_parameters |> min_utxo_deposit_coefficient ) == Some(4310) + + expect ( new_parameters |> cost_models ) == None + + expect + ( new_parameters |> script_execution_prices ) == Some( + ScriptExecutionPrices { + memory: expect_rational(577, 1_000), + cpu: expect_rational(721, 1_000_000), + }, + ) + + expect + ( new_parameters |> max_transaction_execution_units ) == Some( + ExecutionUnits { memory: 14000000, cpu: 10000000000 }, + ) + + expect + ( new_parameters |> max_block_execution_units ) == Some( + ExecutionUnits { memory: 62000000, cpu: 20000000000 }, + ) + + expect ( new_parameters |> max_value_size ) == Some(5000) + + expect ( new_parameters |> collateral_percentage ) == Some(150) + + expect ( new_parameters |> max_collateral_inputs ) == Some(3) + + expect + ( new_parameters |> stake_pool_operator_voting_thresholds ) == Some( + spo_thresholds(), + ) + + expect + ( new_parameters |> delegate_representative_voting_thresholds ) == Some( + drep_thresholds(), + ) + + expect ( new_parameters |> min_constitutional_committee_size ) == Some(7) + + expect + ( new_parameters |> max_constitutional_committee_mandate ) == Some(146) + + expect ( new_parameters |> governance_proposal_lifetime ) == Some(6) + + expect + ( new_parameters |> governance_proposal_deposit ) == Some(100_000_000_000) + + expect + ( new_parameters |> delegate_representative_deposit ) == Some(500_000_000) + + expect + ( new_parameters |> delegate_representative_max_idle_time ) == Some(20) + + expect + ( new_parameters |> reference_scripts_tier_fee_initial_factor ) == Some( + expect_rational(15, 1), + ) + + True + } +} + +fn expect_rational(numerator: Int, denominator: Int) -> Rational { + expect Some(r) = rational.new(numerator, denominator) + r +} + +fn spo_thresholds() -> StakePoolOperatorVotingThresholds { + StakePoolOperatorVotingThresholds { + motion_of_no_confidence: expect_rational(51, 100), + constitutional_committee: ConstitutionalCommitteeThresholds { + default: expect_rational(13, 25), + under_no_confidence: expect_rational(53, 100), + }, + hard_fork: expect_rational(27, 50), + protocol_parameters: ProtocolParametersThresholds { + security_group: expect_rational(11, 20), + network_group: Void, + economic_group: Void, + technical_group: Void, + governance_group: Void, + }, + } +} + +fn drep_thresholds() -> DelegateRepresentativeVotingThresholds { + DelegateRepresentativeVotingThresholds { + motion_of_no_confidence: expect_rational(67, 100), + constitutional_committee: ConstitutionalCommitteeThresholds { + default: expect_rational(67, 100), + under_no_confidence: expect_rational(3, 5), + }, + constitution: expect_rational(3, 4), + hard_fork: expect_rational(3, 5), + protocol_parameters: ProtocolParametersThresholds { + security_group: Void, + network_group: expect_rational(67, 100), + economic_group: expect_rational(67, 100), + technical_group: expect_rational(67, 100), + governance_group: expect_rational(3, 4), + }, + treasury_withdrawal: expect_rational(67, 100), + } +} diff --git a/examples/acceptance_tests/script_context/v3/validators/simple_spend.ak b/examples/acceptance_tests/script_context/v3/validators/simple_spend.ak new file mode 100644 index 00000000..fe628189 --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/validators/simple_spend.ak @@ -0,0 +1,94 @@ +use aiken/collection/dict +use cardano/assets +use cardano/credential.{Address, Script} +use cardano/transaction.{ + InlineDatum, Input, Output, OutputReference, ScriptContext, ScriptInfo, + ScriptPurpose, Spend, Spending, +} + +validator { + fn spend(_tmp1: Void, _tmp2: Void, ctx: ScriptContext) { + assert_transaction_id(ctx.transaction.id) + + assert_script_info(ctx.info) + + assert_inputs(ctx.transaction.inputs) + + expect [] = ctx.transaction.outputs + + expect [] = ctx.transaction.reference_inputs + + expect [] = ctx.transaction.extra_signatories + + expect 42 == ctx.transaction.fee + + assert_redeemers(ctx.transaction.redeemers) + + expect [] == dict.to_pairs(ctx.transaction.datums) + + True + } +} + +fn assert_transaction_id(id: ByteArray) { + expect + #"c6fbd346681a8f8337f6b3e51e6ec973f1509367eabc3a44c849af58a1d8471b" == id + Void +} + +fn assert_script_info(info: ScriptInfo) { + expect + Spending( + OutputReference { + transaction_id: #"0000000000000000000000000000000000000000000000000000000000000000", + output_index: 0, + }, + Some(void()), + ) == info + Void +} + +fn assert_inputs(inputs: List) { + expect [ + Input { + output_reference: OutputReference { transaction_id, output_index: 0 }, + output: Output { + address, + value: resolved_input_value, + datum: InlineDatum(_), + reference_script: None, + }, + }, + ] = inputs + + expect + transaction_id == #"0000000000000000000000000000000000000000000000000000000000000000" + + expect resolved_input_value == assets.from_lovelace(1000000000) + + expect Address { payment_credential: Script(_), stake_credential: None } = + address + + Void +} + +fn assert_redeemers(redeemers: Pairs) { + expect + [ + Pair( + Spend( + OutputReference { + transaction_id: #"0000000000000000000000000000000000000000000000000000000000000000", + output_index: 0, + }, + ), + void(), + ), + ] == redeemers + Void +} + +fn void() -> Data { + let void: Data = Void + void +} diff --git a/examples/acceptance_tests/script_context/v3/validators/voting.ak b/examples/acceptance_tests/script_context/v3/validators/voting.ak new file mode 100644 index 00000000..cce7c58f --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/validators/voting.ak @@ -0,0 +1,85 @@ +use aiken/collection/list +use cardano/credential.{Script, VerificationKey} +use cardano/governance.{ + Abstain, ConstitutionalCommitteeMember, DelegateRepresentative, + GovernanceActionId, No, StakePool, Yes, +} +use cardano/transaction.{ScriptContext} + +type Foo { + Foo(Int) +} + +const only0s = #"00000000000000000000000000000000000000000000000000000000" + +const only7s = + #"7777777777777777777777777777777777777777777777777777777777777777" + +const only8s = + #"8888888888888888888888888888888888888888888888888888888888888888" + +const only9s = + #"9999999999999999999999999999999999999999999999999999999999999999" + +validator { + fn script(_tmp0: Data, ctx: ScriptContext) { + assert_redeemer(ctx.redeemer) + + let votes = ctx.transaction.votes + + expect Some( + Pair(ConstitutionalCommitteeMember(Script(..)), + [Pair(GovernanceActionId { transaction, proposal_procedure: 1 }, Yes)]), + ) = list.at(votes, 0) + expect transaction == only9s + + expect + Some( + Pair(ConstitutionalCommitteeMember(VerificationKey(only0s)), + [ + Pair(GovernanceActionId { + transaction: only9s, + proposal_procedure: 152, + }, + No), + ]), + ) == list.at(votes, 1) + + expect Some(Pair(DelegateRepresentative(Script(..)), [_, ..])) = + list.at(votes, 2) + + expect + Some( + Pair(DelegateRepresentative(VerificationKey(only0s)), + [ + Pair(GovernanceActionId { transaction: only7s, proposal_procedure: 2 }, + Abstain), + Pair(GovernanceActionId { transaction: only8s, proposal_procedure: 1 }, + Abstain), + Pair(GovernanceActionId { transaction: only9s, proposal_procedure: 0 }, + Abstain), + ]), + ) == list.at(votes, 3) + + expect Some(Pair(StakePool(pool_id), [_, ..])) = list.at(votes, 4) + expect pool_id == only0s + + True + } +} + +fn assert_redeemer(data: Data) { + let is_valid = + if data is Foo(42): Foo { + trace data + True + } else if data is Void { + trace data + True + } else { + False + } + + expect is_valid + Void +} diff --git a/examples/acceptance_tests/script_context/v3/validators/withdraw.ak b/examples/acceptance_tests/script_context/v3/validators/withdraw.ak new file mode 100644 index 00000000..211f774b --- /dev/null +++ b/examples/acceptance_tests/script_context/v3/validators/withdraw.ak @@ -0,0 +1,52 @@ +use aiken/collection/list +use aiken/interval +use cardano/credential.{Address, Inline, Pointer, Script, VerificationKey} +use cardano/transaction.{ScriptContext, Withdrawing} + +const only0s = #"00000000000000000000000000000000000000000000000000000000" + +const only1s = #"11111111111111111111111111111111111111111111111111111111" + +validator { + fn spend(_tmp0: Void, _tmp1: Void, _ctx: Data) { + True + } + + fn withdraw(_tmp0: Void, ctx: ScriptContext) { + expect Withdrawing(Script(my_script_hash)) = ctx.info + + expect + interval.entirely_before(1596059092000) == ctx.transaction.validity_range + + let addresses = list.map(ctx.transaction.outputs, fn(out) { out.address }) + + expect + Some( + Address { + payment_credential: VerificationKey(only0s), + stake_credential: Some(Inline(Script(only1s))), + }, + ) == list.at(addresses, 0) + + expect + Some( + Address { + payment_credential: VerificationKey(only0s), + stake_credential: Some(Pointer(2498243, 27, 3)), + }, + ) == list.at(addresses, 1) + + expect + Some( + Address { + payment_credential: Script(only1s), + stake_credential: Some(Pointer(2498243, 27, 3)), + }, + ) == list.at(addresses, 2) + + expect + [Pair(Script(my_script_hash), 0), Pair(VerificationKey(only0s), 14)] == ctx.transaction.withdrawals + + True + } +}