diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml index 21d50004..7c86541e 100644 --- a/.trunk/trunk.yaml +++ b/.trunk/trunk.yaml @@ -2,7 +2,7 @@ # To learn more about the format of this file, see https://docs.trunk.io/reference/trunk-yaml version: 0.1 cli: - version: 1.16.2 + version: 1.17.1 plugins: sources: - id: trunk diff --git a/Cargo.lock b/Cargo.lock index 73c3828c..a3865423 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -106,7 +106,7 @@ dependencies = [ "include_dir", "itertools 0.10.5", "proc-macro-error", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", ] @@ -221,7 +221,7 @@ checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" dependencies = [ "num-bigint", "num-traits 0.2.16", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", ] @@ -289,7 +289,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", ] @@ -354,7 +354,7 @@ version = "0.1.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", ] @@ -384,7 +384,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89" dependencies = [ "proc-macro-error", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", ] @@ -519,7 +519,7 @@ dependencies = [ "lazycell", "log", "peeking_take_while", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "regex", "rustc-hash", @@ -541,7 +541,7 @@ dependencies = [ "lazycell", "peeking_take_while", "prettyplease", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "regex", "rustc-hash", @@ -777,7 +777,7 @@ name = "boa_macros" version = "0.17.0" source = "git+https://github.com/boa-dev/boa#986b048560f6f1a6f0fbe2724d3b7c59207e75b6" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", "synstructure 0.13.0", @@ -906,7 +906,7 @@ checksum = "b48814962d2fd604c50d2b9433c2a41a0ab567779ee2c02f7fba6eca1221f082" dependencies = [ "cached_proc_macro_types", "darling 0.14.4", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", ] @@ -1491,7 +1491,7 @@ source = "git+https://github.com/paradigmxyz/reth.git?tag=v0.1.0-alpha.7#34b68de dependencies = [ "convert_case 0.6.0", "parity-scale-codec", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "serde", "syn 2.0.37", @@ -1785,7 +1785,7 @@ checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "strsim", "syn 1.0.109", @@ -1799,7 +1799,7 @@ checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "strsim", "syn 2.0.37", @@ -1875,7 +1875,7 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", ] @@ -1886,7 +1886,7 @@ version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", ] @@ -1898,7 +1898,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case 0.4.0", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "rustc_version 0.4.0", "syn 1.0.109", @@ -1973,7 +1973,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", ] @@ -2023,7 +2023,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f0042ff8246a363dbe77d2ceedb073339e85a804b9a47636c6e016a9a32c05f" dependencies = [ "enum-ordinalize", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", ] @@ -2039,6 +2039,7 @@ dependencies = [ "chrono", "ctor", "dotenvy", + "ef-testing-proc-macros", "ef-tests", "ethers-signers", "eyre", @@ -2050,11 +2051,9 @@ dependencies = [ "reth-primitives", "reth-rlp", "revm-primitives", - "rstest", "sequencer", "serde", "serde_json", - "serde_yaml 0.9.25", "starknet", "starknet_api", "thiserror", @@ -2065,6 +2064,23 @@ dependencies = [ "zip", ] +[[package]] +name = "ef-testing-proc-macros" +version = "0.1.0" +dependencies = [ + "eyre", + "lazy_static", + "proc-macro2 1.0.69", + "quote 1.0.33", + "rayon", + "regex", + "serde", + "serde_json", + "serde_yaml 0.9.25", + "syn 2.0.37", + "walkdir", +] + [[package]] name = "ef-tests" version = "0.1.0-alpha.7" @@ -2155,7 +2171,7 @@ checksum = "e4f76552f53cefc9a7f64987c3701b99d982f7690606fd67de1d09712fbf52f1" dependencies = [ "num-bigint", "num-traits 0.2.16", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", ] @@ -2166,7 +2182,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2ad8cef1d801a4686bfd8919f0b30eac4c8e48968c437a6405ded4fb5272d2b" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", ] @@ -2285,7 +2301,7 @@ dependencies = [ "k256 0.11.6", "num_enum 0.5.11", "open-fastrlp", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "rand", "rlp", "rlp-derive", @@ -2521,7 +2537,7 @@ version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", ] @@ -2538,12 +2554,6 @@ version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" -[[package]] -name = "futures-timer" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" - [[package]] name = "futures-util" version = "0.3.28" @@ -2579,7 +2589,7 @@ version = "0.17.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c2c778cf01917d0fbed53900259d6604a421fab4916a2e738856ead9f1d926a" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", ] @@ -2990,7 +3000,7 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8b728b9421e93eff1d9f8681101b78fa745e0748c95c655c83f337044a7e10" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", ] @@ -3050,7 +3060,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", ] @@ -3070,7 +3080,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", ] @@ -3448,7 +3458,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddece26afd34c31585c74a4db0630c376df271c285d682d1e55012197830b6df" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", ] @@ -3520,7 +3530,7 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", ] @@ -3742,7 +3752,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" dependencies = [ "proc-macro-crate", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", ] @@ -3754,7 +3764,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56ea360eafe1022f7cc56cd7b869ed57330fb2453d0c7831d99b74c65d2f5597" dependencies = [ "proc-macro-crate", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", ] @@ -3819,7 +3829,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" dependencies = [ "bytes", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", ] @@ -3845,7 +3855,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", ] @@ -3915,7 +3925,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "312270ee71e1cd70289dacf597cab7b207aa107d2f28191c2ae45b2ece18a260" dependencies = [ "proc-macro-crate", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", ] @@ -4064,7 +4074,7 @@ checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" dependencies = [ "phf_generator", "phf_shared 0.11.2", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", ] @@ -4108,7 +4118,7 @@ version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", ] @@ -4201,7 +4211,7 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "syn 2.0.37", ] @@ -4236,7 +4246,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", "version_check", @@ -4248,7 +4258,7 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "version_check", ] @@ -4264,9 +4274,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.67" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] @@ -4323,7 +4333,7 @@ version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", ] [[package]] @@ -4712,7 +4722,7 @@ version = "0.1.0-alpha.7" source = "git+https://github.com/paradigmxyz/reth.git?tag=v0.1.0-alpha.7#34b68deedf401624de09fd24d63361be8f4f9987" dependencies = [ "once_cell", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "regex", "syn 2.0.37", @@ -4870,7 +4880,7 @@ name = "reth-rlp-derive" version = "0.1.0-alpha.7" source = "git+https://github.com/paradigmxyz/reth.git?tag=v0.1.0-alpha.7#34b68deedf401624de09fd24d63361be8f4f9987" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", ] @@ -5055,40 +5065,11 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", ] -[[package]] -name = "rstest" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97eeab2f3c0a199bc4be135c36c924b6590b88c377d416494288c14f2db30199" -dependencies = [ - "futures", - "futures-timer", - "rstest_macros", - "rustc_version 0.4.0", -] - -[[package]] -name = "rstest_macros" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605" -dependencies = [ - "cfg-if", - "glob", - "proc-macro2 1.0.67", - "quote 1.0.33", - "regex", - "relative-path", - "rustc_version 0.4.0", - "syn 2.0.37", - "unicode-ident", -] - [[package]] name = "ruint" version = "1.10.1" @@ -5253,7 +5234,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd3904a4ba0a9d0211816177fd34b04c7095443f8cdacd11175064fe541c8fe2" dependencies = [ "heck 0.3.3", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", ] @@ -5295,7 +5276,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "912e55f6d20e0e80d63733872b40e1227c0bce1e1ab81ba67d696339bfd7fd29" dependencies = [ "proc-macro-crate", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", ] @@ -5328,7 +5309,7 @@ version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e85e2a16b12bdb763244c69ab79363d71db2b4b918a2def53f80b02e0574b13c" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "serde_derive_internals", "syn 1.0.109", @@ -5495,7 +5476,7 @@ version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", ] @@ -5506,7 +5487,7 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", ] @@ -5577,7 +5558,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" dependencies = [ "darling 0.20.3", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", ] @@ -6070,7 +6051,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "rustversion", "syn 1.0.109", @@ -6083,7 +6064,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "rustversion", "syn 2.0.37", @@ -6134,7 +6115,7 @@ version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "unicode-ident", ] @@ -6145,7 +6126,7 @@ version = "2.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "unicode-ident", ] @@ -6156,7 +6137,7 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", "unicode-xid 0.2.4", @@ -6168,7 +6149,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", "unicode-xid 0.2.4", @@ -6225,7 +6206,7 @@ version = "1.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", ] @@ -6236,7 +6217,7 @@ version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "58e6318948b519ba6dc2b442a6d0b904ebfb8d411a3ad3e07843615a72249758" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", ] @@ -6360,7 +6341,7 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", ] @@ -6469,7 +6450,7 @@ version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", ] @@ -6752,7 +6733,7 @@ dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", "wasm-bindgen-shared", @@ -6786,7 +6767,7 @@ version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", "wasm-bindgen-backend", @@ -7015,7 +6996,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af46c169923ed7516eef0aa32b56d2651b229f57458ebe46b49ddd6efef5b7a2" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", "synstructure 0.12.6", @@ -7036,7 +7017,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4eae7c1f7d4b8eafce526bc0771449ddc2f250881ae31c50d22c032b5a1c499" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", "synstructure 0.12.6", @@ -7057,7 +7038,7 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 2.0.37", ] @@ -7079,7 +7060,7 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "486558732d5dde10d0f8cb2936507c1bb21bc539d924c949baf5f36a58e51bac" dependencies = [ - "proc-macro2 1.0.67", + "proc-macro2 1.0.69", "quote 1.0.33", "syn 1.0.109", "synstructure 0.12.6", diff --git a/Cargo.toml b/Cargo.toml index 0bff7d8b..7f7c8b0d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace] -members = ["crates/ef-testing", "crates/sequencer"] +members = ["crates/*"] resolver = "2" [workspace.package] @@ -44,9 +44,13 @@ ctor = "0.2.4" dotenvy = "0.15.7" eyre = "0.6.8" lazy_static = "1.4.0" +proc-macro2 = "1.0.69" +quote = "1.0" +rayon = "1.8.0" regex = "1.9.3" reqwest = { version = "0.11.20", features = ["gzip"] } rstest = "0.18.1" +syn = "2.0" thiserror = "1.0.47" tokio = { version = "1.21.2", features = ["macros"] } tracing = "0.1.37" diff --git a/Makefile b/Makefile index 908567fb..7b372a1f 100644 --- a/Makefile +++ b/Makefile @@ -41,8 +41,8 @@ unit: # Runs the repo tests tests: - cargo nextest run --failure-output final + cargo nextest run --failure-output final --no-fail-fast --final-status-level fail # Runs ef tests only ef-test: - cargo nextest run --package ef-testing --test tests --failure-output final + cargo nextest run --package ef-testing --test tests --failure-output final --final-status-level fail --no-fail-fast diff --git a/blockchain-tests-skip.yml b/blockchain-tests-skip.yml index 8ee7a6bc..0f898507 100644 --- a/blockchain-tests-skip.yml +++ b/blockchain-tests-skip.yml @@ -2,1548 +2,1548 @@ # The first level corresponds to the directory, the second to the list of file names to ignore. filename: vmArithmeticTest: - - mulmod.json # kakarot #695 - - divByZero.json # kakarot #695 - - twoOps.json # kakarot #700 - - signextend.json # kakarot #677 - - expPower2.json # kakarot #700 - - expPower256.json # kakarot #700 - - expPower256Of256.json # kakarot #700 - - exp.json # kakarot #700 - - addmod.json # kakarot #695 - - mul.json # ef-test #496 + - mulmod # kakarot #695 + - divByZero # kakarot #695 + - twoOps # kakarot #700 + - signextend # kakarot #677 + - expPower2 # kakarot #700 + - expPower256 # kakarot #700 + - expPower256Of256 # kakarot #700 + - exp # kakarot #700 + - addmod # kakarot #695 + - mul # ef-test #496 vmIOandFlowOperations: - - mload.json # ef-tests #31 - - gas.json # ef-tests #36 - - jumpi.json # kakarot #693 - - jump.json # ef-tests #38 - - jumpToPush.json # ef-tests #61 - - return.json # ef-tests #496 - - codecopy.json # ef-tests #496 - - pop.json # ef-test #496 + - mload # ef-tests #31 + - gas # ef-tests #36 + - jumpi # kakarot #693 + - jump # ef-tests #38 + - jumpToPush # ef-tests #61 + - return # ef-tests #496 + - codecopy # ef-tests #496 + - pop # ef-test #496 vmPerformance: - - performanceTester.json # ef-tests #39 - - loopExp.json # ef-tests #39 - - loopMul.json # ef-tests #39 + - performanceTester # ef-tests #39 + - loopExp # ef-tests #39 + - loopMul # ef-tests #39 vmTests: - - sha3.json # ef-tests #19 - - calldatacopy.json # ef-tests #20 - - suicide.json # ef-tests #57 - - envInfo.json # ef-tests #63 - - blockInfo.json # ef-tests #67 - - random.json # ef-test #496 + - sha3 # ef-tests #19 + - calldatacopy # ef-tests #20 + - suicide # ef-tests #57 + - envInfo # ef-tests #63 + - blockInfo # ef-tests #67 + - random # ef-test #496 vmLogTest: - - log0.json # ef-test #496 - - log1.json # ef-test #496 - - log2.json # ef-test #496 - - log3.json # ef-test #496 - - log4.json # ef-test #496 + - log0 # ef-test #496 + - log1 # ef-test #496 + - log2 # ef-test #496 + - log3 # ef-test #496 + - log4 # ef-test #496 stEIP3855-push0: - - push0.json # ef-tests #149 - - push0Gas.json # ef-tests #150 + - push0 # ef-tests #149 + - push0Gas # ef-tests #150 stEIP3651-warmcoinbase: - - coinbaseWarmAccountCallGas.json # ef-tests #153 - - coinbaseWarmAccountCallGasFail.json # ef-tests #154 + - coinbaseWarmAccountCallGas # ef-tests #153 + - coinbaseWarmAccountCallGasFail # ef-tests #154 stEIP3860-limitmeterinitcode: - - create2InitCodeSizeLimit.json # ef-tests #155 - - createInitCodeSizeLimit.json # ef-tests #156 - - creationTxInitCodeSizeLimit.json # ef-tests #157 + - create2InitCodeSizeLimit # ef-tests #155 + - createInitCodeSizeLimit # ef-tests #156 + - creationTxInitCodeSizeLimit # ef-tests #157 stAttackTest: - - ContractCreationSpam.json # ef-tests #296 - - CrashingTransaction.json # ef-tests #297 + - ContractCreationSpam # ef-tests #296 + - CrashingTransaction # ef-tests #297 stBadOpcode: - - undefinedOpcodeFirstByte.json # ef-tests #121 - - measureGas.json # ef-tests #122 - - badOpcodes.json # ef-tests #123 - - operationDiffGas.json # ef-tests #124 - - invalidDiffPlaces.json # ef-tests #125 - - invalidAddr.json # ef-tests #126 + - undefinedOpcodeFirstByte # ef-tests #121 + - measureGas # ef-tests #122 + - badOpcodes # ef-tests #123 + - operationDiffGas # ef-tests #124 + - invalidDiffPlaces # ef-tests #125 + - invalidAddr # ef-tests #126 stBugs: - - randomStatetestDEFAULT-Tue_07_58_41-15153-575192.json # ef-tests #483 - - randomStatetestDEFAULT-Tue_07_58_41-15153-575192_london.json # ef-tests #483 - - staticcall_createfails.json # ef-tests #484 + - randomStatetestDEFAULT-Tue_07_58_41-15153-575192 # ef-tests #483 + - randomStatetestDEFAULT-Tue_07_58_41-15153-575192_london # ef-tests #483 + - staticcall_createfails # ef-tests #484 stCallCodes: - - callcallcall_000.json # ef-tests #327 - - callcallcall_000_OOGE.json # ef-tests #327 - - callcallcall_000_OOGMAfter.json # ef-tests #327 - - callcallcall_000_OOGMBefore.json # ef-tests #327 - - callcallcall_000_SuicideEnd.json # ef-tests #327 - - callcallcall_000_SuicideMiddle.json # ef-tests #327 - - callcallcall_ABCB_RECURSIVE.json # ef-tests #327 - - callcall_00.json # ef-tests #327 - - callcall_00_OOGE.json # ef-tests #327 - - callcall_00_OOGE_valueTransfer.json # ef-tests #327 - - callcall_00_SuicideEnd.json # ef-tests #327 - - callcodeDynamicCode.json # ef-tests #328 - - callcodeEmptycontract.json # ef-tests #327 - - callcallcallcode_001_OOGE.json # ef-tests #327 - - callcallcallcode_001_OOGMAfter.json # ef-tests #327 - - callcallcallcode_001_OOGMBefore.json # ef-tests #327 - - callcallcallcode_001_SuicideEnd.json # ef-tests #327 - - callcallcallcode_001_SuicideMiddle.json # ef-tests #327 - - callcallcallcode_ABCB_RECURSIVE.json # ef-tests #327 - - callcallcodecallcode_011.json # ef-tests #327 - - callcallcodecallcode_011_OOGE.json # ef-tests #327 - - callcallcodecallcode_011_OOGMAfter.json # ef-tests #327 - - callcallcodecallcode_011_OOGMBefore.json # ef-tests #327 - - callcallcodecallcode_011_SuicideEnd.json # ef-tests #327 - - callcallcodecallcode_011_SuicideMiddle.json # ef-tests #327 - - callcallcodecallcode_ABCB_RECURSIVE.json # ef-tests #327 - - callcallcodecall_010.json # ef-tests #327 - - callcallcodecall_010_OOGE.json # ef-tests #327 - - callcallcodecall_010_OOGMAfter.json # ef-tests #327 - - callcallcodecall_010_OOGMBefore.json # ef-tests #327 - - callcallcodecall_010_SuicideEnd.json # ef-tests #327 - - callcallcodecall_010_SuicideMiddle.json # ef-tests #327 - - callcallcodecall_ABCB_RECURSIVE.json # ef-tests #327 - - callcallcode_01.json # ef-tests #327 - - callcallcode_01_OOGE.json # ef-tests #327 - - callcallcode_01_SuicideEnd.json # ef-tests #327 - - callcodecallcallcode_101.json # ef-tests #327 - - callcodecallcallcode_101_OOGE.json # ef-tests #327 - - callcodecallcallcode_101_OOGMAfter.json # ef-tests #327 - - callcodecallcallcode_101_OOGMBefore.json # ef-tests #327 - - callcodecallcallcode_101_SuicideEnd.json # ef-tests #327 - - callcodecallcallcode_101_SuicideMiddle.json # ef-tests #327 - - callcodecallcallcode_ABCB_RECURSIVE.json # ef-tests #327 - - callcodecallcall_100.json # ef-tests #327 - - callcodecallcall_100_OOGE.json # ef-tests #327 - - callcodecallcall_100_OOGMAfter.json # ef-tests #327 - - callcodecallcall_100_OOGMBefore.json # ef-tests #327 - - callcodecallcall_100_SuicideEnd.json # ef-tests #327 - - callcodecallcall_100_SuicideMiddle.json # ef-tests #327 - - callcodecallcall_ABCB_RECURSIVE.json # ef-tests #327 - - callcodecallcodecallcode_111.json # ef-tests #327 - - callcodecallcodecallcode_111_OOGE.json # ef-tests #327 - - callcodecallcodecallcode_111_OOGMAfter.json # ef-tests #327 - - callcodecallcodecallcode_111_OOGMBefore.json # ef-tests #327 - - callcodecallcodecallcode_ABCB_RECURSIVE.json # ef-tests #327 - - callcodecallcodecall_110.json # ef-tests #327 - - callcodecallcodecall_110_OOGE.json # ef-tests #327 - - callcodecallcodecall_110_OOGMAfter.json # ef-tests #327 - - callcodecallcodecall_110_OOGMBefore.json # ef-tests #327 - - callcodecallcodecall_110_SuicideEnd.json # ef-tests #327 - - callcodecallcodecall_ABCB_RECURSIVE.json # ef-tests #327 - - callcodecallcode_11.json # ef-tests #327 - - callcodecallcode_11_OOGE.json # ef-tests #327 - - callcodecall_10.json # ef-tests #327 - - callcodecall_10_OOGE.json # ef-tests #327 - - callcodecall_10_SuicideEnd.json # ef-tests #327 - - callcallcallcode_001.json # ef-tests #327 - - callcodeInInitcodeToEmptyContract.json # ef-tests #328 - - callcodeInInitcodeToExisContractWithVTransferNEMoney.json # ef-tests #328 - - callcodeInInitcodeToExistingContract.json # ef-tests #328 - - callcodeInInitcodeToExistingContractWithValueTransfer.json # ef-tests #328 - - callcode_checkPC.json # ef-tests #327 - - callcodeDynamicCode2SelfCall.json # ef-tests #329 - - callcodecallcodecallcode_111_SuicideEnd.json # ef-tests #485 - - callcodecallcodecallcode_111_SuicideMiddle.json # ef-tests #485 - - callcodecallcodecall_110_SuicideMiddle.json # ef-tests #485 - - callcodecallcode_11_SuicideEnd.json # ef-tests #485 + - callcallcall_000 # ef-tests #327 + - callcallcall_000_OOGE # ef-tests #327 + - callcallcall_000_OOGMAfter # ef-tests #327 + - callcallcall_000_OOGMBefore # ef-tests #327 + - callcallcall_000_SuicideEnd # ef-tests #327 + - callcallcall_000_SuicideMiddle # ef-tests #327 + - callcallcall_ABCB_RECURSIVE # ef-tests #327 + - callcall_00 # ef-tests #327 + - callcall_00_OOGE # ef-tests #327 + - callcall_00_OOGE_valueTransfer # ef-tests #327 + - callcall_00_SuicideEnd # ef-tests #327 + - callcodeDynamicCode # ef-tests #328 + - callcodeEmptycontract # ef-tests #327 + - callcallcallcode_001_OOGE # ef-tests #327 + - callcallcallcode_001_OOGMAfter # ef-tests #327 + - callcallcallcode_001_OOGMBefore # ef-tests #327 + - callcallcallcode_001_SuicideEnd # ef-tests #327 + - callcallcallcode_001_SuicideMiddle # ef-tests #327 + - callcallcallcode_ABCB_RECURSIVE # ef-tests #327 + - callcallcodecallcode_011 # ef-tests #327 + - callcallcodecallcode_011_OOGE # ef-tests #327 + - callcallcodecallcode_011_OOGMAfter # ef-tests #327 + - callcallcodecallcode_011_OOGMBefore # ef-tests #327 + - callcallcodecallcode_011_SuicideEnd # ef-tests #327 + - callcallcodecallcode_011_SuicideMiddle # ef-tests #327 + - callcallcodecallcode_ABCB_RECURSIVE # ef-tests #327 + - callcallcodecall_010 # ef-tests #327 + - callcallcodecall_010_OOGE # ef-tests #327 + - callcallcodecall_010_OOGMAfter # ef-tests #327 + - callcallcodecall_010_OOGMBefore # ef-tests #327 + - callcallcodecall_010_SuicideEnd # ef-tests #327 + - callcallcodecall_010_SuicideMiddle # ef-tests #327 + - callcallcodecall_ABCB_RECURSIVE # ef-tests #327 + - callcallcode_01 # ef-tests #327 + - callcallcode_01_OOGE # ef-tests #327 + - callcallcode_01_SuicideEnd # ef-tests #327 + - callcodecallcallcode_101 # ef-tests #327 + - callcodecallcallcode_101_OOGE # ef-tests #327 + - callcodecallcallcode_101_OOGMAfter # ef-tests #327 + - callcodecallcallcode_101_OOGMBefore # ef-tests #327 + - callcodecallcallcode_101_SuicideEnd # ef-tests #327 + - callcodecallcallcode_101_SuicideMiddle # ef-tests #327 + - callcodecallcallcode_ABCB_RECURSIVE # ef-tests #327 + - callcodecallcall_100 # ef-tests #327 + - callcodecallcall_100_OOGE # ef-tests #327 + - callcodecallcall_100_OOGMAfter # ef-tests #327 + - callcodecallcall_100_OOGMBefore # ef-tests #327 + - callcodecallcall_100_SuicideEnd # ef-tests #327 + - callcodecallcall_100_SuicideMiddle # ef-tests #327 + - callcodecallcall_ABCB_RECURSIVE # ef-tests #327 + - callcodecallcodecallcode_111 # ef-tests #327 + - callcodecallcodecallcode_111_OOGE # ef-tests #327 + - callcodecallcodecallcode_111_OOGMAfter # ef-tests #327 + - callcodecallcodecallcode_111_OOGMBefore # ef-tests #327 + - callcodecallcodecallcode_ABCB_RECURSIVE # ef-tests #327 + - callcodecallcodecall_110 # ef-tests #327 + - callcodecallcodecall_110_OOGE # ef-tests #327 + - callcodecallcodecall_110_OOGMAfter # ef-tests #327 + - callcodecallcodecall_110_OOGMBefore # ef-tests #327 + - callcodecallcodecall_110_SuicideEnd # ef-tests #327 + - callcodecallcodecall_ABCB_RECURSIVE # ef-tests #327 + - callcodecallcode_11 # ef-tests #327 + - callcodecallcode_11_OOGE # ef-tests #327 + - callcodecall_10 # ef-tests #327 + - callcodecall_10_OOGE # ef-tests #327 + - callcodecall_10_SuicideEnd # ef-tests #327 + - callcallcallcode_001 # ef-tests #327 + - callcodeInInitcodeToEmptyContract # ef-tests #328 + - callcodeInInitcodeToExisContractWithVTransferNEMoney # ef-tests #328 + - callcodeInInitcodeToExistingContract # ef-tests #328 + - callcodeInInitcodeToExistingContractWithValueTransfer # ef-tests #328 + - callcode_checkPC # ef-tests #327 + - callcodeDynamicCode2SelfCall # ef-tests #329 + - callcodecallcodecallcode_111_SuicideEnd # ef-tests #485 + - callcodecallcodecallcode_111_SuicideMiddle # ef-tests #485 + - callcodecallcodecall_110_SuicideMiddle # ef-tests #485 + - callcodecallcode_11_SuicideEnd # ef-tests #485 stCallCreateCallCodeTest: - - Call1024BalanceTooLow.json # ef-tests #493 - - CallcodeLoseGasOOG.json # ef-tests #493 - - createInitFailUndefinedInstruction2.json # ef-tests #495 - - createInitFailBadJumpDestination2.json # ef-tests #495 - - createNameRegistratorendowmentTooHigh.json # ef-tests #497 - - Callcode1024OOG.json # ef-tests #493 - - CallLoseGasOOG.json # ef-tests #493 - - Call1024OOG.json # ef-tests #493 - - callcodeOutput3partialFail.json # ef-tests #493 - - callWithHighValueAndGasOOG.json # ef-tests #493 - - callWithHighValueOOGinCall.json # ef-tests #493 - - createFailBalanceTooLow.json # ef-tests #495 - - Call1024PreCalls.json # ef-tests #495 - - callOutput3Fail.json # ef-tests #493 - - CallRecursiveBombPreCall.json # ef-tests #495 - - callOutput3.json # ef-tests #493 - - contractCreationMakeCallThatAskMoreGasThenTransactionProvided.json # ef-tests #493 - - callcodeWithHighValueAndGasOOG.json # ef-tests #495 - - createInitFailStackUnderflow.json # ef-tests #495 - - callcodeOutput3Fail.json # ef-tests #493 - - createJS_NoCollision.json # ef-tests #493 - - Callcode1024BalanceTooLow.json # ef-tests #493 - - callcodeOutput3.json # ef-tests #493 - - callWithHighValueAndOOGatTxLevel.json - - callcodeOutput3partial.json # ef-tests #493 - - createInitFailStackSizeLargerThan1024.json # ef-tests #495 - - createInitOOGforCREATE.json # ef-tests #498 - - callOutput3partial.json # ef-tests #493 - - createInitFailBadJumpDestination.json # ef-tests #495 - - createInitFailUndefinedInstruction.json # ef-tests #493 - - createInitFail_OOGduringInit2.json # ef-tests #497 - - callOutput3partialFail.json # ef-tests #493 - - createNameRegistratorPerTxsNotEnoughGas.json # ef-tests #529 + - Call1024BalanceTooLow # ef-tests #493 + - CallcodeLoseGasOOG # ef-tests #493 + - createInitFailUndefinedInstruction2 # ef-tests #495 + - createInitFailBadJumpDestination2 # ef-tests #495 + - createNameRegistratorendowmentTooHigh # ef-tests #497 + - Callcode1024OOG # ef-tests #493 + - CallLoseGasOOG # ef-tests #493 + - Call1024OOG # ef-tests #493 + - callcodeOutput3partialFail # ef-tests #493 + - callWithHighValueAndGasOOG # ef-tests #493 + - callWithHighValueOOGinCall # ef-tests #493 + - createFailBalanceTooLow # ef-tests #495 + - Call1024PreCalls # ef-tests #495 + - callOutput3Fail # ef-tests #493 + - CallRecursiveBombPreCall # ef-tests #495 + - callOutput3 # ef-tests #493 + - contractCreationMakeCallThatAskMoreGasThenTransactionProvided # ef-tests #493 + - callcodeWithHighValueAndGasOOG # ef-tests #495 + - createInitFailStackUnderflow # ef-tests #495 + - callcodeOutput3Fail # ef-tests #493 + - createJS_NoCollision # ef-tests #493 + - Callcode1024BalanceTooLow # ef-tests #493 + - callcodeOutput3 # ef-tests #493 + - callWithHighValueAndOOGatTxLevel + - callcodeOutput3partial # ef-tests #493 + - createInitFailStackSizeLargerThan1024 # ef-tests #495 + - createInitOOGforCREATE # ef-tests #498 + - callOutput3partial # ef-tests #493 + - createInitFailBadJumpDestination # ef-tests #495 + - createInitFailUndefinedInstruction # ef-tests #493 + - createInitFail_OOGduringInit2 # ef-tests #497 + - callOutput3partialFail # ef-tests #493 + - createNameRegistratorPerTxsNotEnoughGas # ef-tests #529 stCallDelegateCodesCallCodeHomestead: - - callcallcallcode_001.json # ef-tests #330 - - callcallcallcode_001_OOGE.json # ef-tests #330 - - callcallcallcode_001_OOGMAfter.json # ef-tests #330 - - callcallcallcode_001_OOGMBefore.json # ef-tests #330 - - callcallcallcode_ABCB_RECURSIVE.json # ef-tests #330 - - callcallcodecallcode_011.json # ef-tests #330 - - callcallcodecallcode_011_OOGE.json # ef-tests #330 - - callcallcodecallcode_011_OOGMAfter.json # ef-tests #330 - - callcallcodecallcode_011_OOGMBefore.json # ef-tests #330 - - callcallcodecallcode_ABCB_RECURSIVE.json # ef-tests #330 - - callcallcodecall_010.json # ef-tests #330 - - callcallcodecall_010_OOGE.json # ef-tests #330 - - callcallcodecall_010_OOGMAfter.json # ef-tests #330 - - callcallcodecall_010_OOGMBefore.json # ef-tests #330 - - callcallcodecall_ABCB_RECURSIVE.json # ef-tests #330 - - callcallcode_01.json # ef-tests #330 - - callcallcode_01_OOGE.json # ef-tests #330 - - callcodecallcallcode_101.json # ef-tests #330 - - callcodecallcallcode_101_OOGE.json # ef-tests #330 - - callcodecallcallcode_101_OOGMAfter.json # ef-tests #330 - - callcodecallcallcode_101_OOGMBefore.json # ef-tests #330 - - callcodecallcallcode_ABCB_RECURSIVE.json # ef-tests #330 - - callcodecallcall_100.json # ef-tests #330 - - callcodecallcall_100_OOGE.json # ef-tests #330 - - callcodecallcall_100_OOGMAfter.json # ef-tests #330 - - callcodecallcall_100_OOGMBefore.json # ef-tests #330 - - callcodecallcall_ABCB_RECURSIVE.json # ef-tests #330 - - callcodecallcodecallcode_111.json # ef-tests #330 - - callcodecallcodecallcode_111_OOGE.json # ef-tests #330 - - callcodecallcodecallcode_111_OOGMAfter.json # ef-tests #330 - - callcodecallcodecallcode_111_OOGMBefore.json # ef-tests #330 - - callcodecallcodecallcode_111_SuicideEnd.json # ef-tests #330 - - callcodecallcodecallcode_ABCB_RECURSIVE.json # ef-tests #330 - - callcodecallcodecall_110.json # ef-tests #330 - - callcodecallcodecall_110_OOGE.json # ef-tests #330 - - callcodecallcodecall_110_OOGMAfter.json # ef-tests #330 - - callcodecallcodecall_110_OOGMBefore.json # ef-tests #330 - - callcodecallcodecall_ABCB_RECURSIVE.json # ef-tests #330 - - callcodecallcode_11.json # ef-tests #330 - - callcodecallcode_11_OOGE.json # ef-tests #330 - - callcodecall_10.json # ef-tests #330 - - callcodecall_10_OOGE.json # ef-tests #330 - - callcallcallcode_001_SuicideEnd.json # ef-tests #486 - - callcallcallcode_001_SuicideMiddle.json # ef-tests #486 - - callcallcodecallcode_011_SuicideEnd.json # ef-tests #486 - - callcallcodecallcode_011_SuicideMiddle.json # ef-tests #486 - - callcallcodecall_010_SuicideEnd.json # ef-tests #486 - - callcallcodecall_010_SuicideMiddle.json # ef-tests #486 - - callcallcode_01_SuicideEnd.json # ef-tests #486 - - callcodecallcallcode_101_SuicideEnd.json # ef-tests #486 - - callcodecallcallcode_101_SuicideMiddle.json # ef-tests #486 - - callcodecallcall_100_SuicideEnd.json # ef-tests #486 - - callcodecallcall_100_SuicideMiddle.json # ef-tests #486 - - callcodecallcodecallcode_111_SuicideMiddle.json # ef-tests #486 - - callcodecallcodecall_110_SuicideEnd.json # ef-tests #486 - - callcodecallcodecall_110_SuicideMiddle.json # ef-tests #486 - - callcodecallcode_11_SuicideEnd.json # ef-tests #486 - - callcodecall_10_SuicideEnd.json # ef-tests #486 + - callcallcallcode_001 # ef-tests #330 + - callcallcallcode_001_OOGE # ef-tests #330 + - callcallcallcode_001_OOGMAfter # ef-tests #330 + - callcallcallcode_001_OOGMBefore # ef-tests #330 + - callcallcallcode_ABCB_RECURSIVE # ef-tests #330 + - callcallcodecallcode_011 # ef-tests #330 + - callcallcodecallcode_011_OOGE # ef-tests #330 + - callcallcodecallcode_011_OOGMAfter # ef-tests #330 + - callcallcodecallcode_011_OOGMBefore # ef-tests #330 + - callcallcodecallcode_ABCB_RECURSIVE # ef-tests #330 + - callcallcodecall_010 # ef-tests #330 + - callcallcodecall_010_OOGE # ef-tests #330 + - callcallcodecall_010_OOGMAfter # ef-tests #330 + - callcallcodecall_010_OOGMBefore # ef-tests #330 + - callcallcodecall_ABCB_RECURSIVE # ef-tests #330 + - callcallcode_01 # ef-tests #330 + - callcallcode_01_OOGE # ef-tests #330 + - callcodecallcallcode_101 # ef-tests #330 + - callcodecallcallcode_101_OOGE # ef-tests #330 + - callcodecallcallcode_101_OOGMAfter # ef-tests #330 + - callcodecallcallcode_101_OOGMBefore # ef-tests #330 + - callcodecallcallcode_ABCB_RECURSIVE # ef-tests #330 + - callcodecallcall_100 # ef-tests #330 + - callcodecallcall_100_OOGE # ef-tests #330 + - callcodecallcall_100_OOGMAfter # ef-tests #330 + - callcodecallcall_100_OOGMBefore # ef-tests #330 + - callcodecallcall_ABCB_RECURSIVE # ef-tests #330 + - callcodecallcodecallcode_111 # ef-tests #330 + - callcodecallcodecallcode_111_OOGE # ef-tests #330 + - callcodecallcodecallcode_111_OOGMAfter # ef-tests #330 + - callcodecallcodecallcode_111_OOGMBefore # ef-tests #330 + - callcodecallcodecallcode_111_SuicideEnd # ef-tests #330 + - callcodecallcodecallcode_ABCB_RECURSIVE # ef-tests #330 + - callcodecallcodecall_110 # ef-tests #330 + - callcodecallcodecall_110_OOGE # ef-tests #330 + - callcodecallcodecall_110_OOGMAfter # ef-tests #330 + - callcodecallcodecall_110_OOGMBefore # ef-tests #330 + - callcodecallcodecall_ABCB_RECURSIVE # ef-tests #330 + - callcodecallcode_11 # ef-tests #330 + - callcodecallcode_11_OOGE # ef-tests #330 + - callcodecall_10 # ef-tests #330 + - callcodecall_10_OOGE # ef-tests #330 + - callcallcallcode_001_SuicideEnd # ef-tests #486 + - callcallcallcode_001_SuicideMiddle # ef-tests #486 + - callcallcodecallcode_011_SuicideEnd # ef-tests #486 + - callcallcodecallcode_011_SuicideMiddle # ef-tests #486 + - callcallcodecall_010_SuicideEnd # ef-tests #486 + - callcallcodecall_010_SuicideMiddle # ef-tests #486 + - callcallcode_01_SuicideEnd # ef-tests #486 + - callcodecallcallcode_101_SuicideEnd # ef-tests #486 + - callcodecallcallcode_101_SuicideMiddle # ef-tests #486 + - callcodecallcall_100_SuicideEnd # ef-tests #486 + - callcodecallcall_100_SuicideMiddle # ef-tests #486 + - callcodecallcodecallcode_111_SuicideMiddle # ef-tests #486 + - callcodecallcodecall_110_SuicideEnd # ef-tests #486 + - callcodecallcodecall_110_SuicideMiddle # ef-tests #486 + - callcodecallcode_11_SuicideEnd # ef-tests #486 + - callcodecall_10_SuicideEnd # ef-tests #486 stCallDelegateCodesHomestead: - - callcallcallcode_001_SuicideEnd.json # ef-tests #331 - - callcallcallcode_001_SuicideMiddle.json # ef-tests #331 - - callcallcodecallcode_011_SuicideEnd.json # ef-tests #331 - - callcallcodecallcode_011_SuicideMiddle.json # ef-tests #331 - - callcallcodecall_010_SuicideEnd.json # ef-tests #331 - - callcallcodecall_010_SuicideMiddle.json # ef-tests #331 - - callcallcode_01_SuicideEnd.json # ef-tests #331 - - callcodecallcallcode_101_SuicideEnd.json # ef-tests #331 - - callcodecallcallcode_101_SuicideMiddle.json # ef-tests #331 - - callcodecallcall_100_SuicideEnd.json # ef-tests #331 - - callcodecallcall_100_SuicideMiddle.json # ef-tests #331 - - callcodecallcodecall_110_SuicideEnd.json # ef-tests #331 - - callcodecall_10_SuicideEnd.json # ef-tests #331 - - callcallcallcode_001.json # ef-tests #331 - - callcallcallcode_001_OOGE.json # ef-tests #331 - - callcallcallcode_001_OOGMAfter.json # ef-tests #331 - - callcallcallcode_001_OOGMBefore.json # ef-tests #331 - - callcallcallcode_ABCB_RECURSIVE.json # ef-tests #331 - - callcallcodecallcode_011.json # ef-tests #331 - - callcallcodecallcode_011_OOGE.json # ef-tests #331 - - callcallcodecallcode_011_OOGMAfter.json # ef-tests #331 - - callcallcodecallcode_011_OOGMBefore.json # ef-tests #331 - - callcallcodecallcode_ABCB_RECURSIVE.json # ef-tests #331 - - callcallcodecall_010.json # ef-tests #331 - - callcallcodecall_010_OOGE.json # ef-tests #331 - - callcallcodecall_010_OOGMAfter.json # ef-tests #331 - - callcallcodecall_010_OOGMBefore.json # ef-tests #331 - - callcallcodecall_ABCB_RECURSIVE.json # ef-tests #331 - - callcallcode_01.json # ef-tests #331 - - callcallcode_01_OOGE.json # ef-tests #331 - - callcodecallcallcode_101.json # ef-tests #331 - - callcodecallcallcode_101_OOGE.json # ef-tests #331 - - callcodecallcallcode_101_OOGMAfter.json # ef-tests #331 - - callcodecallcallcode_101_OOGMBefore.json # ef-tests #331 - - callcodecallcallcode_ABCB_RECURSIVE.json # ef-tests #331 - - callcodecallcall_100.json # ef-tests #331 - - callcodecallcall_100_OOGE.json # ef-tests #331 - - callcodecallcall_100_OOGMAfter.json # ef-tests #331 - - callcodecallcall_100_OOGMBefore.json # ef-tests #331 - - callcodecallcall_ABCB_RECURSIVE.json # ef-tests #331 - - callcodecallcodecallcode_111.json # ef-tests #331 - - callcodecallcodecallcode_111_OOGE.json # ef-tests #331 - - callcodecallcodecallcode_111_OOGMAfter.json # ef-tests #331 - - callcodecallcodecallcode_111_OOGMBefore.json # ef-tests #331 - - callcodecallcodecallcode_ABCB_RECURSIVE.json # ef-tests #331 - - callcodecallcodecall_110.json # ef-tests #331 - - callcodecallcodecall_110_OOGE.json # ef-tests #331 - - callcodecallcodecall_110_OOGMAfter.json # ef-tests #331 - - callcodecallcodecall_110_OOGMBefore.json # ef-tests #331 - - callcodecallcodecall_ABCB_RECURSIVE.json # ef-tests #331 - - callcodecallcode_11.json # ef-tests #331 - - callcodecallcode_11_OOGE.json # ef-tests #331 - - callcodecall_10.json # ef-tests #331 - - callcodecall_10_OOGE.json # ef-tests #331 - - callcodecallcodecallcode_111_SuicideEnd.json # ef-tests #487 - - callcodecallcodecallcode_111_SuicideMiddle.json # ef-tests #487 - - callcodecallcodecall_110_SuicideMiddle.json # ef-tests #487 - - callcodecallcode_11_SuicideEnd.json # ef-tests #487 + - callcallcallcode_001_SuicideEnd # ef-tests #331 + - callcallcallcode_001_SuicideMiddle # ef-tests #331 + - callcallcodecallcode_011_SuicideEnd # ef-tests #331 + - callcallcodecallcode_011_SuicideMiddle # ef-tests #331 + - callcallcodecall_010_SuicideEnd # ef-tests #331 + - callcallcodecall_010_SuicideMiddle # ef-tests #331 + - callcallcode_01_SuicideEnd # ef-tests #331 + - callcodecallcallcode_101_SuicideEnd # ef-tests #331 + - callcodecallcallcode_101_SuicideMiddle # ef-tests #331 + - callcodecallcall_100_SuicideEnd # ef-tests #331 + - callcodecallcall_100_SuicideMiddle # ef-tests #331 + - callcodecallcodecall_110_SuicideEnd # ef-tests #331 + - callcodecall_10_SuicideEnd # ef-tests #331 + - callcallcallcode_001 # ef-tests #331 + - callcallcallcode_001_OOGE # ef-tests #331 + - callcallcallcode_001_OOGMAfter # ef-tests #331 + - callcallcallcode_001_OOGMBefore # ef-tests #331 + - callcallcallcode_ABCB_RECURSIVE # ef-tests #331 + - callcallcodecallcode_011 # ef-tests #331 + - callcallcodecallcode_011_OOGE # ef-tests #331 + - callcallcodecallcode_011_OOGMAfter # ef-tests #331 + - callcallcodecallcode_011_OOGMBefore # ef-tests #331 + - callcallcodecallcode_ABCB_RECURSIVE # ef-tests #331 + - callcallcodecall_010 # ef-tests #331 + - callcallcodecall_010_OOGE # ef-tests #331 + - callcallcodecall_010_OOGMAfter # ef-tests #331 + - callcallcodecall_010_OOGMBefore # ef-tests #331 + - callcallcodecall_ABCB_RECURSIVE # ef-tests #331 + - callcallcode_01 # ef-tests #331 + - callcallcode_01_OOGE # ef-tests #331 + - callcodecallcallcode_101 # ef-tests #331 + - callcodecallcallcode_101_OOGE # ef-tests #331 + - callcodecallcallcode_101_OOGMAfter # ef-tests #331 + - callcodecallcallcode_101_OOGMBefore # ef-tests #331 + - callcodecallcallcode_ABCB_RECURSIVE # ef-tests #331 + - callcodecallcall_100 # ef-tests #331 + - callcodecallcall_100_OOGE # ef-tests #331 + - callcodecallcall_100_OOGMAfter # ef-tests #331 + - callcodecallcall_100_OOGMBefore # ef-tests #331 + - callcodecallcall_ABCB_RECURSIVE # ef-tests #331 + - callcodecallcodecallcode_111 # ef-tests #331 + - callcodecallcodecallcode_111_OOGE # ef-tests #331 + - callcodecallcodecallcode_111_OOGMAfter # ef-tests #331 + - callcodecallcodecallcode_111_OOGMBefore # ef-tests #331 + - callcodecallcodecallcode_ABCB_RECURSIVE # ef-tests #331 + - callcodecallcodecall_110 # ef-tests #331 + - callcodecallcodecall_110_OOGE # ef-tests #331 + - callcodecallcodecall_110_OOGMAfter # ef-tests #331 + - callcodecallcodecall_110_OOGMBefore # ef-tests #331 + - callcodecallcodecall_ABCB_RECURSIVE # ef-tests #331 + - callcodecallcode_11 # ef-tests #331 + - callcodecallcode_11_OOGE # ef-tests #331 + - callcodecall_10 # ef-tests #331 + - callcodecall_10_OOGE # ef-tests #331 + - callcodecallcodecallcode_111_SuicideEnd # ef-tests #487 + - callcodecallcodecallcode_111_SuicideMiddle # ef-tests #487 + - callcodecallcodecall_110_SuicideMiddle # ef-tests #487 + - callcodecallcode_11_SuicideEnd # ef-tests #487 stChainId: - - chainId.json # ef-tests #299 + - chainId # ef-tests #299 stCodeSizeLimit: - - codesizeInit.json # ef-tests #262 - - codesizeValid.json # ef-tests #263 - - create2CodeSizeLimit.json # ef-tests #264 - - createCodeSizeLimit.json # ef-tests #265 - - codesizeOOGInvalidSize.json # ef-tests #528 + - codesizeInit # ef-tests #262 + - codesizeValid # ef-tests #263 + - create2CodeSizeLimit # ef-tests #264 + - createCodeSizeLimit # ef-tests #265 + - codesizeOOGInvalidSize # ef-tests #528 stCreate2: - - RevertDepthCreate2OOG.json # ef-tests #334 - - RevertDepthCreate2OOGBerlin.json # ef-tests #334 - - RevertDepthCreateAddressCollisionBerlin.json # ef-tests #334 - - RevertDepthCreateAddressCollision.json # ef-tests #334 - - create2callPrecompiles.json # ef-tests #335 - - create2checkFieldsInInitcode.json # ef-tests #335 - - create2collisionBalance.json # ef-tests #335 - - create2collisionCode.json # ef-tests #335 - - create2collisionCode2.json # ef-tests #335 - - create2collisionNonce.json # ef-tests #335 - - create2collisionStorage.json # ef-tests #335 - - create2InitCodes.json # ef-tests #335 - - create2noCash.json # ef-tests #335 - - Create2OnDepth1023.json # ef-tests #335 - - Create2OnDepth1024.json # ef-tests #335 - - Create2OOGFromCallRefunds.json # ef-tests #335 - - Create2Recursive.json # ef-tests #335 - - CREATE2_FirstByte_loop.json # ef-tests #335 - - CREATE2_Suicide.json # ef-tests #335 - - CreateMessageRevertedOOGInInit.json # ef-tests #335 - - call_outsize_then_create2_successful_then_returndatasize.json # ef-tests #336 - - call_then_create2_successful_then_returndatasize.json # ef-tests #336 - - Create2OOGafterInitCodeReturndata.json # ef-tests #336 - - Create2OOGafterInitCodeReturndata2.json # ef-tests #336 - - Create2OOGafterInitCodeReturndata3.json # ef-tests #523 - - Create2OOGafterInitCodeRevert.json # ef-tests #336 - - Create2OOGafterInitCodeRevert2.json # ef-tests #336 - - Create2OOGafterInitCodeRevert3.json # ef-tests #523 - - CREATE2_HighNonce.json # ef-tests #336 - - CREATE2_HighNonceDelegatecall.json # ef-tests #336 - - CreateMessageReverted.json # ef-tests #336 - - RevertInCreateInInitCreate2.json # ef-tests #336 - - RevertOpcodeInCreateReturnsCreate2.json # ef-tests #336 - - returndatasize_following_successful_create.json # ef-tests #336 - - returndatacopy_afterFailing_create.json # ef-tests #336 - - returndatacopy_following_create.json # ef-tests #336 - - RevertOpcodeCreate.json # ef-tests #336 - - returndatacopy_following_revert_in_create.json # ef-tests #336 - - returndatacopy_0_0_following_successful_create.json # ef-tests #336 - - returndatacopy_following_successful_create.json # ef-tests #336 - - create2collisionSelfdestructed.json # ef-tests #337 - - create2collisionSelfdestructed2.json # ef-tests #337 - - create2SmartInitCode.json # ef-tests #337 - - CREATE2_ContractSuicideDuringInit_ThenStoreThenReturn.json # ef-tests #337 + - RevertDepthCreate2OOG # ef-tests #334 + - RevertDepthCreate2OOGBerlin # ef-tests #334 + - RevertDepthCreateAddressCollisionBerlin # ef-tests #334 + - RevertDepthCreateAddressCollision # ef-tests #334 + - create2callPrecompiles # ef-tests #335 + - create2checkFieldsInInitcode # ef-tests #335 + - create2collisionBalance # ef-tests #335 + - create2collisionCode # ef-tests #335 + - create2collisionCode2 # ef-tests #335 + - create2collisionNonce # ef-tests #335 + - create2collisionStorage # ef-tests #335 + - create2InitCodes # ef-tests #335 + - create2noCash # ef-tests #335 + - Create2OnDepth1023 # ef-tests #335 + - Create2OnDepth1024 # ef-tests #335 + - Create2OOGFromCallRefunds # ef-tests #335 + - Create2Recursive # ef-tests #335 + - CREATE2_FirstByte_loop # ef-tests #335 + - CREATE2_Suicide # ef-tests #335 + - CreateMessageRevertedOOGInInit # ef-tests #335 + - call_outsize_then_create2_successful_then_returndatasize # ef-tests #336 + - call_then_create2_successful_then_returndatasize # ef-tests #336 + - Create2OOGafterInitCodeReturndata # ef-tests #336 + - Create2OOGafterInitCodeReturndata2 # ef-tests #336 + - Create2OOGafterInitCodeReturndata3 # ef-tests #523 + - Create2OOGafterInitCodeRevert # ef-tests #336 + - Create2OOGafterInitCodeRevert2 # ef-tests #336 + - Create2OOGafterInitCodeRevert3 # ef-tests #523 + - CREATE2_HighNonce # ef-tests #336 + - CREATE2_HighNonceDelegatecall # ef-tests #336 + - CreateMessageReverted # ef-tests #336 + - RevertInCreateInInitCreate2 # ef-tests #336 + - RevertOpcodeInCreateReturnsCreate2 # ef-tests #336 + - returndatasize_following_successful_create # ef-tests #336 + - returndatacopy_afterFailing_create # ef-tests #336 + - returndatacopy_following_create # ef-tests #336 + - RevertOpcodeCreate # ef-tests #336 + - returndatacopy_following_revert_in_create # ef-tests #336 + - returndatacopy_0_0_following_successful_create # ef-tests #336 + - returndatacopy_following_successful_create # ef-tests #336 + - create2collisionSelfdestructed # ef-tests #337 + - create2collisionSelfdestructed2 # ef-tests #337 + - create2SmartInitCode # ef-tests #337 + - CREATE2_ContractSuicideDuringInit_ThenStoreThenReturn # ef-tests #337 stCreateTest: - - CreateAddressWarmAfterFail.json # ef-tests #338 - - CreateCollisionToEmpty.json # ef-tests #338 - - CreateOOGafterInitCodeReturndata.json # ef-tests #338 - - CreateOOGafterInitCodeReturndata2.json # ef-tests #338 - - CreateResults.json # ef-tests #338 - - CREATE_AcreateB_BSuicide_BStore.json # ef-tests #338 - - CREATE_EContract_ThenCALLToNonExistentAcc.json # ef-tests #338 - - CREATE_EmptyContract.json # ef-tests #338 - - CREATE_EmptyContractAndCallIt_0wei.json # ef-tests #338 - - CREATE_EmptyContractAndCallIt_1wei.json # ef-tests #338 - - CREATE_EmptyContractWithBalance.json # ef-tests #338 - - CREATE_EmptyContractWithStorage.json # ef-tests #338 - - CREATE_EmptyContractWithStorageAndCallIt_0wei.json # ef-tests #338 - - CREATE_EmptyContractWithStorageAndCallIt_1wei.json # ef-tests #338 - - CREATE_HighNonce.json # ef-tests #338 - - TransactionCollisionToEmpty.json # ef-tests #338 - - CodeInConstructor.json # ef-tests #339 - - CreateCollisionResults.json # ef-tests #339 - - createFailResult.json # ef-tests #339 - - createLargeResult.json # ef-tests #339 - - CreateOOGafterInitCodeRevert.json # ef-tests #339 - - CreateOOGafterInitCodeRevert2.json # ef-tests #339 - - CreateOOGafterInitCodeReturndata3.json # ef-tests #523 - - CreateOOGafterMaxCodesize.json # ef-tests #339 - - CREATE_ContractSuicideDuringInit.json # ef-tests #339 - - CREATE_ContractSuicideDuringInit_ThenStoreThenReturn.json # ef-tests #339 - - CREATE_ContractSuicideDuringInit_WithValue.json # ef-tests #339 - - CREATE_ContractSuicideDuringInit_WithValueToItself.json # ef-tests #339 - - CreateOOGFromCallRefunds.json # ef-tests #340 - - CreateOOGFromEOARefunds.json # ef-tests #340 - - CREATE_EContractCreateEContractInInit_Tr.json # ef-tests #340 - - CREATE_EContractCreateNEContractInInitOOG_Tr.json # ef-tests #340 - - CREATE_EContractCreateNEContractInInit_Tr.json # ef-tests #340 - - CREATE_empty000CreateinInitCode_Transaction.json # ef-tests #340 - - CREATE_FirstByte_loop.json # ef-tests #340 - - CreateTransactionHighNonce.json # ef-tests #471 + - CreateAddressWarmAfterFail # ef-tests #338 + - CreateCollisionToEmpty # ef-tests #338 + - CreateOOGafterInitCodeReturndata # ef-tests #338 + - CreateOOGafterInitCodeReturndata2 # ef-tests #338 + - CreateResults # ef-tests #338 + - CREATE_AcreateB_BSuicide_BStore # ef-tests #338 + - CREATE_EContract_ThenCALLToNonExistentAcc # ef-tests #338 + - CREATE_EmptyContract # ef-tests #338 + - CREATE_EmptyContractAndCallIt_0wei # ef-tests #338 + - CREATE_EmptyContractAndCallIt_1wei # ef-tests #338 + - CREATE_EmptyContractWithBalance # ef-tests #338 + - CREATE_EmptyContractWithStorage # ef-tests #338 + - CREATE_EmptyContractWithStorageAndCallIt_0wei # ef-tests #338 + - CREATE_EmptyContractWithStorageAndCallIt_1wei # ef-tests #338 + - CREATE_HighNonce # ef-tests #338 + - TransactionCollisionToEmpty # ef-tests #338 + - CodeInConstructor # ef-tests #339 + - CreateCollisionResults # ef-tests #339 + - createFailResult # ef-tests #339 + - createLargeResult # ef-tests #339 + - CreateOOGafterInitCodeRevert # ef-tests #339 + - CreateOOGafterInitCodeRevert2 # ef-tests #339 + - CreateOOGafterInitCodeReturndata3 # ef-tests #523 + - CreateOOGafterMaxCodesize # ef-tests #339 + - CREATE_ContractSuicideDuringInit # ef-tests #339 + - CREATE_ContractSuicideDuringInit_ThenStoreThenReturn # ef-tests #339 + - CREATE_ContractSuicideDuringInit_WithValue # ef-tests #339 + - CREATE_ContractSuicideDuringInit_WithValueToItself # ef-tests #339 + - CreateOOGFromCallRefunds # ef-tests #340 + - CreateOOGFromEOARefunds # ef-tests #340 + - CREATE_EContractCreateEContractInInit_Tr # ef-tests #340 + - CREATE_EContractCreateNEContractInInitOOG_Tr # ef-tests #340 + - CREATE_EContractCreateNEContractInInit_Tr # ef-tests #340 + - CREATE_empty000CreateinInitCode_Transaction # ef-tests #340 + - CREATE_FirstByte_loop # ef-tests #340 + - CreateTransactionHighNonce # ef-tests #471 stDelegatecallTestHomestead: - - Call1024BalanceTooLow.json # ef-tests #332 - - Call1024OOG.json # ef-tests #332 - - Call1024PreCalls.json # ef-tests #332 - - CallcodeLoseGasOOG.json # ef-tests #332 - - callcodeOutput3.json # ef-tests #332 - - CallLoseGasOOG.json # ef-tests #332 - - callOutput3.json # ef-tests #332 - - callOutput3partial.json # ef-tests #332 - - callOutput3partialFail.json # ef-tests #332 - - CallRecursiveBombPreCall.json # ef-tests #332 - - deleagateCallAfterValueTransfer.json # ef-tests #332 - - Delegatecall1024.json # ef-tests #332 - - Delegatecall1024OOG.json # ef-tests #332 - - delegatecallEmptycontract.json # ef-tests #332 - - delegatecallOOGinCall.json # ef-tests #332 - - delegatecallSenderCheck.json # ef-tests #332 - - delegatecallValueCheck.json # ef-tests #332 - - delegatecallInInitcodeToEmptyContract.json # ef-tests #333 - - delegatecallInInitcodeToExistingContract.json # ef-tests #333 - - delegatecallInInitcodeToExistingContractOOG.json # ef-tests #333 - - delegatecodeDynamicCode.json # ef-tests #333 - - delegatecodeDynamicCode2SelfCall.json # ef-tests #333 + - Call1024BalanceTooLow # ef-tests #332 + - Call1024OOG # ef-tests #332 + - Call1024PreCalls # ef-tests #332 + - CallcodeLoseGasOOG # ef-tests #332 + - callcodeOutput3 # ef-tests #332 + - CallLoseGasOOG # ef-tests #332 + - callOutput3 # ef-tests #332 + - callOutput3partial # ef-tests #332 + - callOutput3partialFail # ef-tests #332 + - CallRecursiveBombPreCall # ef-tests #332 + - deleagateCallAfterValueTransfer # ef-tests #332 + - Delegatecall1024 # ef-tests #332 + - Delegatecall1024OOG # ef-tests #332 + - delegatecallEmptycontract # ef-tests #332 + - delegatecallOOGinCall # ef-tests #332 + - delegatecallSenderCheck # ef-tests #332 + - delegatecallValueCheck # ef-tests #332 + - delegatecallInInitcodeToEmptyContract # ef-tests #333 + - delegatecallInInitcodeToExistingContract # ef-tests #333 + - delegatecallInInitcodeToExistingContractOOG # ef-tests #333 + - delegatecodeDynamicCode # ef-tests #333 + - delegatecodeDynamicCode2SelfCall # ef-tests #333 stEIP150Specific: - - CallAskMoreGasOnDepth2ThenTransactionHas.json # ef-tests #303 - - CallGoesOOGOnSecondLevel.json # ef-tests #304 - - CreateAndGasInsideCreate.json # ef-tests #305 - - DelegateCallOnEIP.json # ef-tests #306 - - NewGasPriceForCodes.json # ef-tests #307 - - SuicideToExistingContract.json # ef-tests #308 - - SuicideToNotExistingContract.json # ef-tests #309 - - Transaction64Rule_d64e0.json # ef-tests #310 - - Transaction64Rule_d64m1.json # ef-tests #311 - - Transaction64Rule_d64p1.json # ef-tests #312 - - Transaction64Rule_integerBoundaries.json # ef-tests #313 + - CallAskMoreGasOnDepth2ThenTransactionHas # ef-tests #303 + - CallGoesOOGOnSecondLevel # ef-tests #304 + - CreateAndGasInsideCreate # ef-tests #305 + - DelegateCallOnEIP # ef-tests #306 + - NewGasPriceForCodes # ef-tests #307 + - SuicideToExistingContract # ef-tests #308 + - SuicideToNotExistingContract # ef-tests #309 + - Transaction64Rule_d64e0 # ef-tests #310 + - Transaction64Rule_d64m1 # ef-tests #311 + - Transaction64Rule_d64p1 # ef-tests #312 + - Transaction64Rule_integerBoundaries # ef-tests #313 stEIP150singleCodeGasPrices: - - gasCostMemSeg.json # ef-tests #343 - - RawCreateGas.json # ef-tests #343 - - RawCreateGasMemory.json # ef-tests #343 - - RawCreateGasValueTransfer.json # ef-tests #343 - - RawCreateGasValueTransferMemory.json # ef-tests #343 - - eip2929-ff.json # ef-tests #344 - - eip2929.json # ef-tests #344 - - gasCostMemory.json # ef-tests #344 - - RawBalanceGas.json # ef-tests #344 - - RawCallCodeGas.json # ef-tests #344 - - RawCallCodeGasAsk.json # ef-tests #344 - - RawCallCodeGasMemory.json # ef-tests #344 - - RawCallCodeGasMemoryAsk.json # ef-tests #344 - - RawCallCodeGasValueTransfer.json # ef-tests #344 - - RawCallCodeGasValueTransferAsk.json # ef-tests #344 - - RawCallCodeGasValueTransferMemory.json # ef-tests #344 - - RawCallCodeGasValueTransferMemoryAsk.json # ef-tests #344 - - RawCallGas.json # ef-tests #344 - - RawCallGasAsk.json # ef-tests #344 - - RawCallGasValueTransfer.json # ef-tests #344 - - RawCallGasValueTransferAsk.json # ef-tests #344 - - RawCallGasValueTransferMemory.json # ef-tests #344 - - RawCallGasValueTransferMemoryAsk.json # ef-tests #344 - - RawCallMemoryGas.json # ef-tests #344 - - RawCallMemoryGasAsk.json # ef-tests #344 - - RawCreateFailGasValueTransfer.json # ef-tests #344 - - RawCreateFailGasValueTransfer2.json # ef-tests #344 - - RawDelegateCallGas.json # ef-tests #344 - - RawDelegateCallGasAsk.json # ef-tests #344 - - RawDelegateCallGasMemory.json # ef-tests #344 - - RawDelegateCallGasMemoryAsk.json # ef-tests #344 - - RawExtCodeCopyGas.json # ef-tests #344 - - RawExtCodeCopyMemoryGas.json # ef-tests #344 - - RawExtCodeSizeGas.json # ef-tests #344 - - eip2929OOG.json # ef-tests #344 - - gasCostBerlin.json # ef-tests #344 - - gasCostExp.json # ef-tests #344 - - gasCostJump.json # ef-tests #344 - - gasCostReturn.json # ef-tests #344 + - gasCostMemSeg # ef-tests #343 + - RawCreateGas # ef-tests #343 + - RawCreateGasMemory # ef-tests #343 + - RawCreateGasValueTransfer # ef-tests #343 + - RawCreateGasValueTransferMemory # ef-tests #343 + - eip2929-ff # ef-tests #344 + - eip2929 # ef-tests #344 + - gasCostMemory # ef-tests #344 + - RawBalanceGas # ef-tests #344 + - RawCallCodeGas # ef-tests #344 + - RawCallCodeGasAsk # ef-tests #344 + - RawCallCodeGasMemory # ef-tests #344 + - RawCallCodeGasMemoryAsk # ef-tests #344 + - RawCallCodeGasValueTransfer # ef-tests #344 + - RawCallCodeGasValueTransferAsk # ef-tests #344 + - RawCallCodeGasValueTransferMemory # ef-tests #344 + - RawCallCodeGasValueTransferMemoryAsk # ef-tests #344 + - RawCallGas # ef-tests #344 + - RawCallGasAsk # ef-tests #344 + - RawCallGasValueTransfer # ef-tests #344 + - RawCallGasValueTransferAsk # ef-tests #344 + - RawCallGasValueTransferMemory # ef-tests #344 + - RawCallGasValueTransferMemoryAsk # ef-tests #344 + - RawCallMemoryGas # ef-tests #344 + - RawCallMemoryGasAsk # ef-tests #344 + - RawCreateFailGasValueTransfer # ef-tests #344 + - RawCreateFailGasValueTransfer2 # ef-tests #344 + - RawDelegateCallGas # ef-tests #344 + - RawDelegateCallGasAsk # ef-tests #344 + - RawDelegateCallGasMemory # ef-tests #344 + - RawDelegateCallGasMemoryAsk # ef-tests #344 + - RawExtCodeCopyGas # ef-tests #344 + - RawExtCodeCopyMemoryGas # ef-tests #344 + - RawExtCodeSizeGas # ef-tests #344 + - eip2929OOG # ef-tests #344 + - gasCostBerlin # ef-tests #344 + - gasCostExp # ef-tests #344 + - gasCostJump # ef-tests #344 + - gasCostReturn # ef-tests #344 stEIP158Specific: - - CALL_OneVCallSuicide.json # ef-tests #350 - - CALL_ZeroVCallSuicide.json # ef-tests #350 - - EXP_Empty.json # ef-tests #350 - - EXTCODESIZE_toEpmty.json # ef-tests #350 - - EXTCODESIZE_toNonExistent.json # ef-tests #350 - - vitalikTransactionTest.json # ef-tests #351 + - CALL_OneVCallSuicide # ef-tests #350 + - CALL_ZeroVCallSuicide # ef-tests #350 + - EXP_Empty # ef-tests #350 + - EXTCODESIZE_toEpmty # ef-tests #350 + - EXTCODESIZE_toNonExistent # ef-tests #350 + - vitalikTransactionTest # ef-tests #351 stEIP1559: - - senderBalance.json # ef-tests #499 - - typeTwoBerlin.json # ef-tests #500 - - lowGasLimit.json # ef-tests #500 - - baseFeeDiffPlaces.json # ef-tests #499 - - outOfFundsOldTypes.json # ef-tests #500 - - intrinsic.json # ef-tests #500 - - outOfFunds.json # ef-tests #499 - - lowGasPriceOldTypes.json # ef-tests #500 - - valCausesOOF.json # ef-tests #500 - - gasPriceDiffPlaces.json # ef-tests #499 + - senderBalance # ef-tests #499 + - typeTwoBerlin # ef-tests #500 + - lowGasLimit # ef-tests #500 + - baseFeeDiffPlaces # ef-tests #499 + - outOfFundsOldTypes # ef-tests #500 + - intrinsic # ef-tests #500 + - outOfFunds # ef-tests #499 + - lowGasPriceOldTypes # ef-tests #500 + - valCausesOOF # ef-tests #500 + - gasPriceDiffPlaces # ef-tests #499 stEIP2930: - - addressOpcodes.json # ef-tests #502 - - manualCreate.json # ef-tests #501 - - storageCosts.json # ef-tests #502 - - coinbaseT2.json # ef-tests #503 - - coinbaseT01.json # ef-tests #503 - - variedContext.json # ef-tests #502 - - transactionCosts.json # ef-tests #501 + - addressOpcodes # ef-tests #502 + - manualCreate # ef-tests #501 + - storageCosts # ef-tests #502 + - coinbaseT2 # ef-tests #503 + - coinbaseT01 # ef-tests #503 + - variedContext # ef-tests #502 + - transactionCosts # ef-tests #501 stExample: - - rangesExample.json # ef-tests #505 - - eip1559.json # ef-tests #504 - - invalidTr.json # ef-tests #504 - - accessListExample.json # ef-tests #505 - - basefeeExample.json # ef-tests #505 - - mergeTest.json # ef-tests #504 + - rangesExample # ef-tests #505 + - eip1559 # ef-tests #504 + - invalidTr # ef-tests #504 + - accessListExample # ef-tests #505 + - basefeeExample # ef-tests #505 + - mergeTest # ef-tests #504 stExtCodeHash: - - extCodeHashCreatedAndDeletedAccountCall.json # ef-tests #270 - - extCodeHashDeletedAccount3.json # ef-tests #271 - - extCodeHashSubcallSuicide.json # ef-tests #272 - - extCodeHashInInitCode.json # ef-tests #273 - - extCodeHashDeletedAccount.json # ef-tests #274 - - extCodeHashDeletedAccount2.json # ef-tests #275 - - extCodeCopyBounds.json # ef-tests #276 - - createEmptyThenExtcodehash.json # ef-tests #277 - - extcodehashEmpty.json # ef-tests #278 - - extCodeHashDeletedAccount4.json # ef-tests #279 - - extCodeHashCreatedAndDeletedAccountRecheckInOuterCall.json # ef-tests #280 - - extCodeHashCreatedAndDeletedAccountStaticCall.json # ef-tests #281 - - extCodeHashMaxCodeSize.json # ef-tests #282 - - extCodeHashCreatedAndDeletedAccount.json # ef-tests - - extCodeHashChangedAccount.json # ef-tests #284 - - callToSuicideThenExtcodehash.json # ef-tests #285 - - codeCopyZero.json # ef-tests #286 - - extCodeHashDeletedAccount1.json # ef-tests #287 - - callToNonExistent.json # ef-tests #288 - - extCodeHashSelfInInit.json # ef-tests #289 - - extCodeHashSubcallOOG.json # ef-tests #290 - - dynamicAccountOverwriteEmpty.json # ef-tests #291 - - extCodeHashDynamicArgument.json # ef-tests #512 - - extCodeHashPrecompiles.json # ef-tests #512 + - extCodeHashCreatedAndDeletedAccountCall # ef-tests #270 + - extCodeHashDeletedAccount3 # ef-tests #271 + - extCodeHashSubcallSuicide # ef-tests #272 + - extCodeHashInInitCode # ef-tests #273 + - extCodeHashDeletedAccount # ef-tests #274 + - extCodeHashDeletedAccount2 # ef-tests #275 + - extCodeCopyBounds # ef-tests #276 + - createEmptyThenExtcodehash # ef-tests #277 + - extcodehashEmpty # ef-tests #278 + - extCodeHashDeletedAccount4 # ef-tests #279 + - extCodeHashCreatedAndDeletedAccountRecheckInOuterCall # ef-tests #280 + - extCodeHashCreatedAndDeletedAccountStaticCall # ef-tests #281 + - extCodeHashMaxCodeSize # ef-tests #282 + - extCodeHashCreatedAndDeletedAccount # ef-tests + - extCodeHashChangedAccount # ef-tests #284 + - callToSuicideThenExtcodehash # ef-tests #285 + - codeCopyZero # ef-tests #286 + - extCodeHashDeletedAccount1 # ef-tests #287 + - callToNonExistent # ef-tests #288 + - extCodeHashSelfInInit # ef-tests #289 + - extCodeHashSubcallOOG # ef-tests #290 + - dynamicAccountOverwriteEmpty # ef-tests #291 + - extCodeHashDynamicArgument # ef-tests #512 + - extCodeHashPrecompiles # ef-tests #512 stLogTests: - - log0_logMemsizeTooHigh.json # ef-tests #513 - - log0_logMemStartTooHigh.json # ef-tests #513 - - log1_logMemsizeTooHigh.json # ef-tests #513 - - log1_logMemStartTooHigh.json # ef-tests #513 - - log2_logMemsizeTooHigh.json # ef-tests #513 - - log2_logMemStartTooHigh.json # ef-tests #513 - - log3_logMemsizeTooHigh.json # ef-tests #513 - - log3_logMemStartTooHigh.json # ef-tests #513 - - log4_logMemsizeTooHigh.json # ef-tests #513 - - log4_logMemStartTooHigh.json # ef-tests #513 - - logInOOG_Call.json # ef-tests #513 + - log0_logMemsizeTooHigh # ef-tests #513 + - log0_logMemStartTooHigh # ef-tests #513 + - log1_logMemsizeTooHigh # ef-tests #513 + - log1_logMemStartTooHigh # ef-tests #513 + - log2_logMemsizeTooHigh # ef-tests #513 + - log2_logMemStartTooHigh # ef-tests #513 + - log3_logMemsizeTooHigh # ef-tests #513 + - log3_logMemStartTooHigh # ef-tests #513 + - log4_logMemsizeTooHigh # ef-tests #513 + - log4_logMemStartTooHigh # ef-tests #513 + - logInOOG_Call # ef-tests #513 stHomesteadSpecific: - - contractCreationOOGdontLeaveEmptyContractViaTransaction.json # ef-tests #353 - - createContractViaContract.json # ef-tests #354 - - createContractViaContractOOGInitCode.json # ef-tests #354 - - createContractViaTransactionCost53000.json # ef-tests #354 + - contractCreationOOGdontLeaveEmptyContractViaTransaction # ef-tests #353 + - createContractViaContract # ef-tests #354 + - createContractViaContractOOGInitCode # ef-tests #354 + - createContractViaTransactionCost53000 # ef-tests #354 stInitCodeTest: - - TransactionCreateStopInInitcode.json # ef-tests #108 - - CallRecursiveContract.json # ef-tests #109 - - CallContractToCreateContractWhichWouldCreateContractInInitCode.json # ef-tests #110 - - CallContractToCreateContractOOGBonusGas.json # ef-tests #111 - - OutOfGasPrefundedContractCreation.json # ef-test #112 - - CallContractToCreateContractWhichWouldCreateContractIfCalled.json # ef-test #114 - - CallTheContractToCreateEmptyContract.json # ef-test #115 - - OutOfGasContractCreation.json # ef-test #116 - - CallContractToCreateContractAndCallItOOG.json # ef-test #117 - - CallContractToCreateContractNoCash.json # ef-tests #269 + - TransactionCreateStopInInitcode # ef-tests #108 + - CallRecursiveContract # ef-tests #109 + - CallContractToCreateContractWhichWouldCreateContractInInitCode # ef-tests #110 + - CallContractToCreateContractOOGBonusGas # ef-tests #111 + - OutOfGasPrefundedContractCreation # ef-test #112 + - CallContractToCreateContractWhichWouldCreateContractIfCalled # ef-test #114 + - CallTheContractToCreateEmptyContract # ef-test #115 + - OutOfGasContractCreation # ef-test #116 + - CallContractToCreateContractAndCallItOOG # ef-test #117 + - CallContractToCreateContractNoCash # ef-tests #269 stMemExpandingEIP150Calls: - - CallAskMoreGasOnDepth2ThenTransactionHasWithMemExpandingCalls.json # ef-tests #523 - - CallGoesOOGOnSecondLevelWithMemExpandingCalls.json # ef-tests #523 - - NewGasPriceForCodesWithMemExpandingCalls.json # ef-tests #523 - - CreateAndGasInsideCreateWithMemExpandingCalls.json # ef-tests #523 + - CallAskMoreGasOnDepth2ThenTransactionHasWithMemExpandingCalls # ef-tests #523 + - CallGoesOOGOnSecondLevelWithMemExpandingCalls # ef-tests #523 + - NewGasPriceForCodesWithMemExpandingCalls # ef-tests #523 + - CreateAndGasInsideCreateWithMemExpandingCalls # ef-tests #523 stMemoryStressTest: - - FillStack.json # ef-tests #367 - - JUMP_Bounds.json # ef-tests #538 - - JUMP_Bounds2.json # ef-tests #538 - - JUMPI_Bounds.json # ef-tests #538 - - MLOAD_Bounds.json # ef-tests #521 - - mload32bitBound.json # ef-tests #521 - - mload32bitBound2.json # ef-tests #521 - - MSTORE_Bounds.json # ef-tests #521 - - MSTORE_Bounds2.json # ef-tests #521 - - MSTORE_Bounds2a.json # ef-tests #521 - - RETURN_Bounds.json # ef-tests #366 - - SSTORE_Bounds.json # ef-tests #521 + - FillStack # ef-tests #367 + - JUMP_Bounds # ef-tests #538 + - JUMP_Bounds2 # ef-tests #538 + - JUMPI_Bounds # ef-tests #538 + - MLOAD_Bounds # ef-tests #521 + - mload32bitBound # ef-tests #521 + - mload32bitBound2 # ef-tests #521 + - MSTORE_Bounds # ef-tests #521 + - MSTORE_Bounds2 # ef-tests #521 + - MSTORE_Bounds2a # ef-tests #521 + - RETURN_Bounds # ef-tests #366 + - SSTORE_Bounds # ef-tests #521 stMemoryTest: - - buffer.json # ef-tests #50 - - bufferSrcOffset.json # ef-tests #51 - - calldatacopy_dejavu.json # ef-tests #518 - - codecopy_dejavu.json # ef-tests #518 - - codecopy_dejavu2.json # ef-tests #518 - - extcodecopy_dejavu.json # ef-tests #518 - - log1_dejavu.json # ef-tests #518 - - log3_dejavu.json # ef-tests #518 - - log4_dejavu.json # ef-tests #518 - - memCopySelf.json # ef-tests #52 - - mload_dejavu.json # ef-tests #518 - - mstore_dejavu.json # ef-tests #518 - - mstroe8_dejavu.json # ef-tests #518 - - oog.json # ef-tests #49 - - sha3_dejavu.json # ef-tests #518 - - stackLimitGas_1023.json # ef-tests #518 - - stackLimitGas_1024.json # ef-tests #518 - - stackLimitPush31_1023.json # ef-tests #518 - - stackLimitPush31_1024.json # ef-tests #518 - - stackLimitPush32_1023.json # ef-tests #518 - - stackLimitPush32_1024.json # ef-tests #518 + - buffer # ef-tests #50 + - bufferSrcOffset # ef-tests #51 + - calldatacopy_dejavu # ef-tests #518 + - codecopy_dejavu # ef-tests #518 + - codecopy_dejavu2 # ef-tests #518 + - extcodecopy_dejavu # ef-tests #518 + - log1_dejavu # ef-tests #518 + - log3_dejavu # ef-tests #518 + - log4_dejavu # ef-tests #518 + - memCopySelf # ef-tests #52 + - mload_dejavu # ef-tests #518 + - mstore_dejavu # ef-tests #518 + - mstroe8_dejavu # ef-tests #518 + - oog # ef-tests #49 + - sha3_dejavu # ef-tests #518 + - stackLimitGas_1023 # ef-tests #518 + - stackLimitGas_1024 # ef-tests #518 + - stackLimitPush31_1023 # ef-tests #518 + - stackLimitPush31_1024 # ef-tests #518 + - stackLimitPush32_1023 # ef-tests #518 + - stackLimitPush32_1024 # ef-tests #518 stNonZeroCallsTest: - - NonZeroValue_CALL.json # ef-tests #360 - - NonZeroValue_CALLCODE.json # ef-tests #360 - - NonZeroValue_CALLCODE_ToEmpty.json # ef-tests #360 - - NonZeroValue_CALLCODE_ToNonNonZeroBalance.json # ef-tests #360 - - NonZeroValue_CALLCODE_ToOneStorageKey.json # ef-tests #360 - - NonZeroValue_CALL_ToEmpty.json # ef-tests #360 - - NonZeroValue_CALL_ToNonNonZeroBalance.json # ef-tests #360 - - NonZeroValue_CALL_ToOneStorageKey.json # ef-tests #360 - - NonZeroValue_DELEGATECALL.json # ef-tests #360 - - NonZeroValue_DELEGATECALL_ToEmpty.json # ef-tests #360 - - NonZeroValue_DELEGATECALL_ToNonNonZeroBalance.json # ef-tests #360 - - NonZeroValue_DELEGATECALL_ToOneStorageKey.json # ef-tests #360 - - NonZeroValue_SUICIDE.json # ef-tests #361 - - NonZeroValue_SUICIDE_ToEmpty.json # ef-tests #514 - - NonZeroValue_SUICIDE_ToOneStorageKey.json # ef-tests #514 - - NonZeroValue_SUICIDE_ToNonNonZeroBalance.json # ef-tests #514 + - NonZeroValue_CALL # ef-tests #360 + - NonZeroValue_CALLCODE # ef-tests #360 + - NonZeroValue_CALLCODE_ToEmpty # ef-tests #360 + - NonZeroValue_CALLCODE_ToNonNonZeroBalance # ef-tests #360 + - NonZeroValue_CALLCODE_ToOneStorageKey # ef-tests #360 + - NonZeroValue_CALL_ToEmpty # ef-tests #360 + - NonZeroValue_CALL_ToNonNonZeroBalance # ef-tests #360 + - NonZeroValue_CALL_ToOneStorageKey # ef-tests #360 + - NonZeroValue_DELEGATECALL # ef-tests #360 + - NonZeroValue_DELEGATECALL_ToEmpty # ef-tests #360 + - NonZeroValue_DELEGATECALL_ToNonNonZeroBalance # ef-tests #360 + - NonZeroValue_DELEGATECALL_ToOneStorageKey # ef-tests #360 + - NonZeroValue_SUICIDE # ef-tests #361 + - NonZeroValue_SUICIDE_ToEmpty # ef-tests #514 + - NonZeroValue_SUICIDE_ToOneStorageKey # ef-tests #514 + - NonZeroValue_SUICIDE_ToNonNonZeroBalance # ef-tests #514 stRandom: - - randomStatetest0.json # ef-tests #397 - - randomStatetest1.json # ef-tests #397 - - randomStatetest100.json # ef-tests #398 - - randomStatetest116.json # ef-tests #398 - - randomStatetest120.json # ef-tests #398 - - randomStatetest124.json # ef-tests #398 - - randomStatetest13.json # ef-tests #397 - - randomStatetest134.json # ef-tests #396 - - randomStatetest138.json # ef-tests #397 - - randomStatetest139.json # ef-tests #398 - - randomStatetest14.json # ef-tests #397 - - randomStatetest143.json # ef-tests #398 - - randomStatetest144.json # ef-tests #397 - - randomStatetest145.json # ef-tests #398 - - randomStatetest147.json # ef-tests #397 - - randomStatetest15.json # ef-tests #398 - - randomStatetest150.json # ef-tests #397 - - randomStatetest151.json # ef-tests #397 - - randomStatetest153.json # ef-tests #398 - - randomStatetest154.json # ef-tests #397 - - randomStatetest156.json # ef-tests #398 - - randomStatetest159.json # ef-tests #398 - - randomStatetest163.json # ef-tests #397 - - randomStatetest164.json # ef-tests #398 - - randomStatetest17.json # ef-tests #398 - - randomStatetest173.json # ef-tests #397 - - randomStatetest174.json # ef-tests #398 - - randomStatetest176.json # ef-tests #397 - - randomStatetest178.json # ef-tests #397 - - randomStatetest184.json # ef-tests #397 - - randomStatetest185.json # ef-tests #397 - - randomStatetest189.json # ef-tests #397 - - randomStatetest196.json # ef-tests #398 - - randomStatetest197.json # ef-tests #397 - - randomStatetest198.json # ef-tests #397 - - randomStatetest199.json # ef-tests #398 - - randomStatetest201.json # ef-tests #397 - - randomStatetest202.json # ef-tests #398 - - randomStatetest205.json # ef-tests #397 - - randomStatetest207.json # ef-tests #398 - - randomStatetest209.json # ef-tests #397 - - randomStatetest212.json # ef-tests #397 - - randomStatetest22.json # ef-tests #397 - - randomStatetest220.json # ef-tests #398 - - randomStatetest222.json # ef-tests #398 - - randomStatetest228.json # ef-tests #398 - - randomStatetest232.json # ef-tests #397 - - randomStatetest233.json # ef-tests #397 - - randomStatetest236.json # ef-tests #398 - - randomStatetest242.json # ef-tests #398 - - randomStatetest244.json # ef-tests #398 - - randomStatetest246.json # ef-tests #398 - - randomStatetest247.json # ef-tests #398 - - randomStatetest248.json # ef-tests #398 - - randomStatetest249.json # ef-tests #398 - - randomStatetest25.json # ef-tests #397 - - randomStatetest251.json # ef-tests #397 - - randomStatetest252.json # ef-tests #397 - - randomStatetest26.json # ef-tests #398 - - randomStatetest261.json # ef-test #538 - - randomStatetest267.json # ef-tests #398 - - randomStatetest270.json # ef-tests #398 - - randomStatetest271.json # ef-tests #397 - - randomStatetest273.json # ef-tests #397 - - randomStatetest282.json # ef-tests #397 - - randomStatetest283.json # ef-tests #398 - - randomStatetest287.json # ef-tests #397 - - randomStatetest288.json # ef-tests #397 - - randomStatetest3.json # ef-tests #398 - - randomStatetest30.json # ef-tests #398 - - randomStatetest306.json # ef-tests #397 - - randomStatetest308.json # ef-tests #398 - - randomStatetest311.json # ef-tests #398 - - randomStatetest312.json # ef-tests #397 - - randomStatetest316.json # ef-tests #398 - - randomStatetest320.json # ef-tests #396 - - randomStatetest325.json # ef-tests #398 - - randomStatetest326.json # ef-tests #397 - - randomStatetest341.json # ef-tests #396 - - randomStatetest343.json # ef-tests #398 - - randomStatetest345.json # ef-tests #397 - - randomStatetest347.json # ef-tests #397 - - randomStatetest349.json # ef-tests #398 - - randomStatetest351.json # ef-tests #398 - - randomStatetest352.json # ef-tests #396 - - randomStatetest354.json # ef-tests #398 - - randomStatetest357.json # ef-tests #397 - - randomStatetest36.json # ef-tests #398 - - randomStatetest365.json # ef-tests #398 - - randomStatetest367.json # ef-tests #398 - - randomStatetest368.json # ef-tests #396 - - randomStatetest371.json # ef-tests #398 - - randomStatetest376.json # ef-tests #397 - - randomStatetest379.json # ef-tests #398 - - randomStatetest382.json # ef-tests #398 - - randomStatetest383.json # ef-tests #398 - - randomStatetest384.json # ef-tests #397 - - randomStatetest41.json # ef-tests #398 - - randomStatetest43.json # ef-tests #398 - - randomStatetest45.json # ef-tests #397 - - randomStatetest48.json # ef-tests #397 - - randomStatetest51.json # ef-tests #538 - - randomStatetest52.json # ef-tests #398 - - randomStatetest53.json # ef-tests #396 - - randomStatetest54.json # ef-tests #538 - - randomStatetest59.json # ef-tests #398 - - randomStatetest64.json # ef-tests #398 - - randomStatetest78.json # ef-tests #397 - - randomStatetest80.json # ef-tests #398 - - randomStatetest84.json # ef-tests #397 - - randomStatetest85.json # ef-tests #398 - - randomStatetest88.json # ef-tests #398 - - randomStatetest98.json # ef-tests #398 + - randomStatetest0 # ef-tests #397 + - randomStatetest1 # ef-tests #397 + - randomStatetest100 # ef-tests #398 + - randomStatetest116 # ef-tests #398 + - randomStatetest120 # ef-tests #398 + - randomStatetest124 # ef-tests #398 + - randomStatetest13 # ef-tests #397 + - randomStatetest134 # ef-tests #396 + - randomStatetest138 # ef-tests #397 + - randomStatetest139 # ef-tests #398 + - randomStatetest14 # ef-tests #397 + - randomStatetest143 # ef-tests #398 + - randomStatetest144 # ef-tests #397 + - randomStatetest145 # ef-tests #398 + - randomStatetest147 # ef-tests #397 + - randomStatetest15 # ef-tests #398 + - randomStatetest150 # ef-tests #397 + - randomStatetest151 # ef-tests #397 + - randomStatetest153 # ef-tests #398 + - randomStatetest154 # ef-tests #397 + - randomStatetest156 # ef-tests #398 + - randomStatetest159 # ef-tests #398 + - randomStatetest163 # ef-tests #397 + - randomStatetest164 # ef-tests #398 + - randomStatetest17 # ef-tests #398 + - randomStatetest173 # ef-tests #397 + - randomStatetest174 # ef-tests #398 + - randomStatetest176 # ef-tests #397 + - randomStatetest178 # ef-tests #397 + - randomStatetest184 # ef-tests #397 + - randomStatetest185 # ef-tests #397 + - randomStatetest189 # ef-tests #397 + - randomStatetest196 # ef-tests #398 + - randomStatetest197 # ef-tests #397 + - randomStatetest198 # ef-tests #397 + - randomStatetest199 # ef-tests #398 + - randomStatetest201 # ef-tests #397 + - randomStatetest202 # ef-tests #398 + - randomStatetest205 # ef-tests #397 + - randomStatetest207 # ef-tests #398 + - randomStatetest209 # ef-tests #397 + - randomStatetest212 # ef-tests #397 + - randomStatetest22 # ef-tests #397 + - randomStatetest220 # ef-tests #398 + - randomStatetest222 # ef-tests #398 + - randomStatetest228 # ef-tests #398 + - randomStatetest232 # ef-tests #397 + - randomStatetest233 # ef-tests #397 + - randomStatetest236 # ef-tests #398 + - randomStatetest242 # ef-tests #398 + - randomStatetest244 # ef-tests #398 + - randomStatetest246 # ef-tests #398 + - randomStatetest247 # ef-tests #398 + - randomStatetest248 # ef-tests #398 + - randomStatetest249 # ef-tests #398 + - randomStatetest25 # ef-tests #397 + - randomStatetest251 # ef-tests #397 + - randomStatetest252 # ef-tests #397 + - randomStatetest26 # ef-tests #398 + - randomStatetest261 # ef-test #538 + - randomStatetest267 # ef-tests #398 + - randomStatetest270 # ef-tests #398 + - randomStatetest271 # ef-tests #397 + - randomStatetest273 # ef-tests #397 + - randomStatetest282 # ef-tests #397 + - randomStatetest283 # ef-tests #398 + - randomStatetest287 # ef-tests #397 + - randomStatetest288 # ef-tests #397 + - randomStatetest3 # ef-tests #398 + - randomStatetest30 # ef-tests #398 + - randomStatetest306 # ef-tests #397 + - randomStatetest308 # ef-tests #398 + - randomStatetest311 # ef-tests #398 + - randomStatetest312 # ef-tests #397 + - randomStatetest316 # ef-tests #398 + - randomStatetest320 # ef-tests #396 + - randomStatetest325 # ef-tests #398 + - randomStatetest326 # ef-tests #397 + - randomStatetest341 # ef-tests #396 + - randomStatetest343 # ef-tests #398 + - randomStatetest345 # ef-tests #397 + - randomStatetest347 # ef-tests #397 + - randomStatetest349 # ef-tests #398 + - randomStatetest351 # ef-tests #398 + - randomStatetest352 # ef-tests #396 + - randomStatetest354 # ef-tests #398 + - randomStatetest357 # ef-tests #397 + - randomStatetest36 # ef-tests #398 + - randomStatetest365 # ef-tests #398 + - randomStatetest367 # ef-tests #398 + - randomStatetest368 # ef-tests #396 + - randomStatetest371 # ef-tests #398 + - randomStatetest376 # ef-tests #397 + - randomStatetest379 # ef-tests #398 + - randomStatetest382 # ef-tests #398 + - randomStatetest383 # ef-tests #398 + - randomStatetest384 # ef-tests #397 + - randomStatetest41 # ef-tests #398 + - randomStatetest43 # ef-tests #398 + - randomStatetest45 # ef-tests #397 + - randomStatetest48 # ef-tests #397 + - randomStatetest51 # ef-tests #538 + - randomStatetest52 # ef-tests #398 + - randomStatetest53 # ef-tests #396 + - randomStatetest54 # ef-tests #538 + - randomStatetest59 # ef-tests #398 + - randomStatetest64 # ef-tests #398 + - randomStatetest78 # ef-tests #397 + - randomStatetest80 # ef-tests #398 + - randomStatetest84 # ef-tests #397 + - randomStatetest85 # ef-tests #398 + - randomStatetest88 # ef-tests #398 + - randomStatetest98 # ef-tests #398 stRandom2: - - 201503110226PYTHON_DUP6.json # ef-tests #393 - - randomStatetest389.json # ef-tests #395 - - randomStatetest396.json # ef-tests #393 - - randomStatetest398.json # ef-tests #395 - - randomStatetest401.json # ef-tests #393 - - randomStatetest409.json # ef-tests #393 - - randomStatetest415.json # ef-tests #393 - - randomStatetest416.json # ef-tests #395 - - randomStatetest417.json # ef-tests #393 - - randomStatetest418.json # ef-tests #393 - - randomStatetest420.json # ef-tests #394 - - randomStatetest422.json # ef-tests #393 - - randomStatetest428.json # ef-tests #393 - - randomStatetest435.json # ef-tests #395 - - randomStatetest437.json # ef-tests #395 - - randomStatetest445.json # ef-tests #538 - - randomStatetest448.json # ef-tests #394 - - randomStatetest450.json # ef-tests #395 - - randomStatetest456.json # ef-tests #393 - - randomStatetest458.json # ef-tests #393 - - randomStatetest461.json # ef-tests #395 - - randomStatetest466.json # ef-tests #395 - - randomStatetest467.json # ef-tests #393 - - randomStatetest470.json # ef-tests #395 - - randomStatetest471.json # ef-tests #395 - - randomStatetest472.json # ef-tests #393 - - randomStatetest476.json # ef-tests #395 - - randomStatetest478.json # ef-tests #393 - - randomStatetest487.json # ef-tests #393 - - randomStatetest495.json # ef-tests #393 - - randomStatetest498.json # ef-tests #395 - - randomStatetest502.json # ef-tests #395 - - randomStatetest504.json # ef-tests #538 - - randomStatetest506.json # ef-tests #395 - - randomStatetest508.json # ef-tests #393 - - randomStatetest519.json # ef-tests #395 - - randomStatetest520.json # ef-tests #395 - - randomStatetest525.json # ef-tests #393 - - randomStatetest531.json # ef-tests #393 - - randomStatetest539.json # ef-tests #395 - - randomStatetest541.json # ef-tests #395 - - randomStatetest542.json # ef-tests #395 - - randomStatetest547.json # ef-tests #393 - - randomStatetest554.json # ef-tests #393 - - randomStatetest558.json # ef-tests #393 - - randomStatetest559.json # ef-tests #393 - - randomStatetest564.json # ef-tests #395 - - randomStatetest567.json # ef-tests #394 - - randomStatetest571.json # ef-tests #395 - - randomStatetest577.json # ef-tests #395 - - randomStatetest578.json # ef-tests #395 - - randomStatetest579.json # ef-tests #393 - - randomStatetest581.json # ef-tests #393 - - randomStatetest583.json # ef-tests #393 - - randomStatetest588.json # ef-tests #395 - - randomStatetest589.json # ef-tests #394 - - randomStatetest605.json # ef-tests #395 - - randomStatetest608.json # ef-tests #395 - - randomStatetest609.json # ef-tests #393 - - randomStatetest618.json # ef-tests #393 - - randomStatetest624.json # ef-tests #393 - - randomStatetest627.json # ef-tests #395 - - randomStatetest628.json # ef-tests #395 - - randomStatetest635.json # ef-tests #393 - - randomStatetest636.json # ef-tests #395 - - randomStatetest639.json # ef-tests #393 - - randomStatetest642.json # ef-tests #533 - - randomStatetest650.json # ef-tests #393 + - 201503110226PYTHON_DUP6 # ef-tests #393 + - randomStatetest389 # ef-tests #395 + - randomStatetest396 # ef-tests #393 + - randomStatetest398 # ef-tests #395 + - randomStatetest401 # ef-tests #393 + - randomStatetest409 # ef-tests #393 + - randomStatetest415 # ef-tests #393 + - randomStatetest416 # ef-tests #395 + - randomStatetest417 # ef-tests #393 + - randomStatetest418 # ef-tests #393 + - randomStatetest420 # ef-tests #394 + - randomStatetest422 # ef-tests #393 + - randomStatetest428 # ef-tests #393 + - randomStatetest435 # ef-tests #395 + - randomStatetest437 # ef-tests #395 + - randomStatetest445 # ef-tests #538 + - randomStatetest448 # ef-tests #394 + - randomStatetest450 # ef-tests #395 + - randomStatetest456 # ef-tests #393 + - randomStatetest458 # ef-tests #393 + - randomStatetest461 # ef-tests #395 + - randomStatetest466 # ef-tests #395 + - randomStatetest467 # ef-tests #393 + - randomStatetest470 # ef-tests #395 + - randomStatetest471 # ef-tests #395 + - randomStatetest472 # ef-tests #393 + - randomStatetest476 # ef-tests #395 + - randomStatetest478 # ef-tests #393 + - randomStatetest487 # ef-tests #393 + - randomStatetest495 # ef-tests #393 + - randomStatetest498 # ef-tests #395 + - randomStatetest502 # ef-tests #395 + - randomStatetest504 # ef-tests #538 + - randomStatetest506 # ef-tests #395 + - randomStatetest508 # ef-tests #393 + - randomStatetest519 # ef-tests #395 + - randomStatetest520 # ef-tests #395 + - randomStatetest525 # ef-tests #393 + - randomStatetest531 # ef-tests #393 + - randomStatetest539 # ef-tests #395 + - randomStatetest541 # ef-tests #395 + - randomStatetest542 # ef-tests #395 + - randomStatetest547 # ef-tests #393 + - randomStatetest554 # ef-tests #393 + - randomStatetest558 # ef-tests #393 + - randomStatetest559 # ef-tests #393 + - randomStatetest564 # ef-tests #395 + - randomStatetest567 # ef-tests #394 + - randomStatetest571 # ef-tests #395 + - randomStatetest577 # ef-tests #395 + - randomStatetest578 # ef-tests #395 + - randomStatetest579 # ef-tests #393 + - randomStatetest581 # ef-tests #393 + - randomStatetest583 # ef-tests #393 + - randomStatetest588 # ef-tests #395 + - randomStatetest589 # ef-tests #394 + - randomStatetest605 # ef-tests #395 + - randomStatetest608 # ef-tests #395 + - randomStatetest609 # ef-tests #393 + - randomStatetest618 # ef-tests #393 + - randomStatetest624 # ef-tests #393 + - randomStatetest627 # ef-tests #395 + - randomStatetest628 # ef-tests #395 + - randomStatetest635 # ef-tests #393 + - randomStatetest636 # ef-tests #395 + - randomStatetest639 # ef-tests #393 + - randomStatetest642 # ef-tests #533 + - randomStatetest650 # ef-tests #393 stRefundTest: - - refundFF.json # ef-tests #405 - - refundMax.json # ef-tests #405 - - refundSSTORE.json # ef-tests #405 - - refund_TxToSuicide.json # ef-tests #406 - - refund600.json # ef-tests #407 - - refundSuicide50procentCap.json # ef-tests #407 - - refund_CallA_notEnoughGasInCall.json # ef-tests #407 - - refund_CallA_OOG.json # ef-tests #407 - - refund_OOG.json # ef-tests #407 - - refund_CallToSuicideNoStorage.json # ef-tests #489 - - refund_TxToSuicideOOG.json # ef-tests #489 - - refund_CallToSuicideTwice.json # ef-tests #489 - - refund_CallToSuicideStorage.json # ef-tests #489 + - refundFF # ef-tests #405 + - refundMax # ef-tests #405 + - refundSSTORE # ef-tests #405 + - refund_TxToSuicide # ef-tests #406 + - refund600 # ef-tests #407 + - refundSuicide50procentCap # ef-tests #407 + - refund_CallA_notEnoughGasInCall # ef-tests #407 + - refund_CallA_OOG # ef-tests #407 + - refund_OOG # ef-tests #407 + - refund_CallToSuicideNoStorage # ef-tests #489 + - refund_TxToSuicideOOG # ef-tests #489 + - refund_CallToSuicideTwice # ef-tests #489 + - refund_CallToSuicideStorage # ef-tests #489 stPreCompiledContracts: - - blake2B.json # ef-tests #389 - - delegatecall09Undefined.json # ef-tests #515 - - identity_to_bigger.json # ef-tests #389 - - identity_to_smaller.json # ef-tests #389 - - idPrecomps.json # ef-tests #389 - - modexp.json # ef-tests #389 - - modexpTests.json # ef-tests #389 - - precompsEIP2929.json # ef-tests #389 - - sec80.json # ef-tests #389 + - blake2B # ef-tests #389 + - delegatecall09Undefined # ef-tests #515 + - identity_to_bigger # ef-tests #389 + - identity_to_smaller # ef-tests #389 + - idPrecomps # ef-tests #389 + - modexp # ef-tests #389 + - modexpTests # ef-tests #389 + - precompsEIP2929 # ef-tests #389 + - sec80 # ef-tests #389 stPreCompiledContracts2: - - CallIdentity_1_nonzeroValue.json # ef-tests #390 - - CallSha256_1_nonzeroValue.json # ef-tests #390 - - CALLBlake2f.json # ef-tests #391 - - CALLCODEBlake2f.json # ef-tests #391 - - CALLCODEEcrecover0.json # ef-tests #391 - - CALLCODEEcrecover0_0input.json # ef-tests #391 - - CALLCODEEcrecover0_completeReturnValue.json # ef-tests #391 - - CALLCODEEcrecover0_Gas2999.json # ef-tests #517 - - CALLCODEEcrecover0_gas3000.json # ef-tests #391 - - CALLCODEEcrecover0_NoGas.json # ef-tests #516 - - CALLCODEEcrecover0_overlappingInputOutput.json # ef-tests #391 - - CALLCODEEcrecover1.json # ef-tests #391 - - CALLCODEEcrecover2.json # ef-tests #391 - - CALLCODEEcrecover3.json # ef-tests #391 - - CALLCODEEcrecover80.json # ef-tests #391 - - CALLCODEEcrecoverH_prefixed0.json # ef-tests #391 - - CALLCODEEcrecoverR_prefixed0.json # ef-tests #391 - - CALLCODEEcrecoverS_prefixed0.json # ef-tests #391 - - CALLCODEEcrecoverV_prefixed0.json # ef-tests #391 - - CALLCODEEcrecoverV_prefixedf0.json # ef-tests #391 - - CALLCODEIdentitiy_0.json # ef-tests #391 - - CALLCODEIdentitiy_1.json # ef-tests #391 - - CALLCODEIdentity_1_nonzeroValue.json # ef-tests #391 - - CALLCODEIdentity_2.json # ef-tests #391 - - CALLCODEIdentity_3.json # ef-tests #391 - - CALLCODEIdentity_4.json # ef-tests #391 - - CALLCODEIdentity_4_gas17.json # ef-tests #391 - - CALLCODEIdentity_4_gas18.json # ef-tests #391 - - CALLCODEIdentity_5.json # ef-tests #391 - - CALLCODERipemd160_0.json # ef-tests #391 - - CALLCODERipemd160_1.json # ef-tests #391 - - CALLCODERipemd160_2.json # ef-tests #391 - - CALLCODERipemd160_3.json # ef-tests #391 - - CALLCODERipemd160_3_postfixed0.json # ef-tests #391 - - CALLCODERipemd160_3_prefixed0.json # ef-tests #391 - - CALLCODERipemd160_4.json # ef-tests #391 - - CALLCODERipemd160_4_gas719.json # ef-tests #391 - - CALLCODERipemd160_5.json # ef-tests #391 - - CALLCODESha256_0.json # ef-tests #391 - - CALLCODESha256_1.json # ef-tests #391 - - CALLCODESha256_1_nonzeroValue.json # ef-tests #391 - - CALLCODESha256_2.json # ef-tests #391 - - CALLCODESha256_3.json # ef-tests #391 - - CALLCODESha256_3_postfix0.json # ef-tests #391 - - CALLCODESha256_3_prefix0.json # ef-tests #391 - - CALLCODESha256_4.json # ef-tests #391 - - CALLCODESha256_4_gas99.json # ef-tests #391 - - CALLCODESha256_5.json # ef-tests #391 - - CallEcrecover0.json # ef-tests #391 - - CallEcrecover0_0input.json # ef-tests #391 - - CallEcrecover0_completeReturnValue.json # ef-tests #391 - - CallEcrecover0_Gas2999.json # ef-tests #517 - - CallEcrecover0_gas3000.json # ef-tests #391 - - CallEcrecover0_NoGas.json # ef-tests #516 - - CallEcrecover0_overlappingInputOutput.json # ef-tests #391 - - CallEcrecover1.json # ef-tests #391 - - CallEcrecover2.json # ef-tests #391 - - CallEcrecover3.json # ef-tests #391 - - CallEcrecover80.json # ef-tests #391 - - CallEcrecoverCheckLength.json # ef-tests #391 - - CallEcrecoverCheckLengthWrongV.json # ef-tests #391 - - CallEcrecoverH_prefixed0.json # ef-tests #391 - - CallEcrecoverInvalidSignature.json # ef-tests #391 - - CallEcrecoverR_prefixed0.json # ef-tests #391 - - CallEcrecoverS_prefixed0.json # ef-tests #391 - - CallEcrecoverUnrecoverableKey.json # ef-tests #391 - - CallEcrecoverV_prefixed0.json # ef-tests #391 - - CallEcrecover_Overflow.json # ef-tests #391 - - CallIdentitiy_0.json # ef-tests #391 - - CallIdentitiy_1.json # ef-tests #391 - - CallIdentity_2.json # ef-tests #391 - - CallIdentity_3.json # ef-tests #391 - - CallIdentity_4.json # ef-tests #391 - - CallIdentity_4_gas17.json # ef-tests #391 - - CallIdentity_4_gas18.json # ef-tests #391 - - CallIdentity_5.json # ef-tests #391 - - CallIdentity_6_inputShorterThanOutput.json # ef-tests #391 - - CallRipemd160_0.json # ef-tests #391 - - CallRipemd160_1.json # ef-tests #391 - - CallRipemd160_2.json # ef-tests #391 - - CallRipemd160_3.json # ef-tests #391 - - CallRipemd160_3_postfixed0.json # ef-tests #391 - - CallRipemd160_3_prefixed0.json # ef-tests #391 - - CallRipemd160_4.json # ef-tests #391 - - CallRipemd160_4_gas719.json # ef-tests #391 - - CallRipemd160_5.json # ef-tests #391 - - CallSha256_0.json # ef-tests #391 - - CallSha256_1.json # ef-tests #391 - - CallSha256_2.json # ef-tests #391 - - CallSha256_3.json # ef-tests #391 - - CallSha256_3_postfix0.json # ef-tests #391 - - CallSha256_3_prefix0.json # ef-tests #391 - - CallSha256_4.json # ef-tests #391 - - CallSha256_4_gas99.json # ef-tests #391 - - CallSha256_5.json # ef-tests #391 - - ecrecoverShortBuff.json # ef-tests #391 - - ecrecoverWeirdV.json # ef-tests #391 - - modexp_0_0_0_20500.json # ef-tests #391 - - modexp_0_0_0_22000.json # ef-tests #391 - - modexp_0_0_0_25000.json # ef-tests #391 - - modexp_0_0_0_35000.json # ef-tests #391 + - CallIdentity_1_nonzeroValue # ef-tests #390 + - CallSha256_1_nonzeroValue # ef-tests #390 + - CALLBlake2f # ef-tests #391 + - CALLCODEBlake2f # ef-tests #391 + - CALLCODEEcrecover0 # ef-tests #391 + - CALLCODEEcrecover0_0input # ef-tests #391 + - CALLCODEEcrecover0_completeReturnValue # ef-tests #391 + - CALLCODEEcrecover0_Gas2999 # ef-tests #517 + - CALLCODEEcrecover0_gas3000 # ef-tests #391 + - CALLCODEEcrecover0_NoGas # ef-tests #516 + - CALLCODEEcrecover0_overlappingInputOutput # ef-tests #391 + - CALLCODEEcrecover1 # ef-tests #391 + - CALLCODEEcrecover2 # ef-tests #391 + - CALLCODEEcrecover3 # ef-tests #391 + - CALLCODEEcrecover80 # ef-tests #391 + - CALLCODEEcrecoverH_prefixed0 # ef-tests #391 + - CALLCODEEcrecoverR_prefixed0 # ef-tests #391 + - CALLCODEEcrecoverS_prefixed0 # ef-tests #391 + - CALLCODEEcrecoverV_prefixed0 # ef-tests #391 + - CALLCODEEcrecoverV_prefixedf0 # ef-tests #391 + - CALLCODEIdentitiy_0 # ef-tests #391 + - CALLCODEIdentitiy_1 # ef-tests #391 + - CALLCODEIdentity_1_nonzeroValue # ef-tests #391 + - CALLCODEIdentity_2 # ef-tests #391 + - CALLCODEIdentity_3 # ef-tests #391 + - CALLCODEIdentity_4 # ef-tests #391 + - CALLCODEIdentity_4_gas17 # ef-tests #391 + - CALLCODEIdentity_4_gas18 # ef-tests #391 + - CALLCODEIdentity_5 # ef-tests #391 + - CALLCODERipemd160_0 # ef-tests #391 + - CALLCODERipemd160_1 # ef-tests #391 + - CALLCODERipemd160_2 # ef-tests #391 + - CALLCODERipemd160_3 # ef-tests #391 + - CALLCODERipemd160_3_postfixed0 # ef-tests #391 + - CALLCODERipemd160_3_prefixed0 # ef-tests #391 + - CALLCODERipemd160_4 # ef-tests #391 + - CALLCODERipemd160_4_gas719 # ef-tests #391 + - CALLCODERipemd160_5 # ef-tests #391 + - CALLCODESha256_0 # ef-tests #391 + - CALLCODESha256_1 # ef-tests #391 + - CALLCODESha256_1_nonzeroValue # ef-tests #391 + - CALLCODESha256_2 # ef-tests #391 + - CALLCODESha256_3 # ef-tests #391 + - CALLCODESha256_3_postfix0 # ef-tests #391 + - CALLCODESha256_3_prefix0 # ef-tests #391 + - CALLCODESha256_4 # ef-tests #391 + - CALLCODESha256_4_gas99 # ef-tests #391 + - CALLCODESha256_5 # ef-tests #391 + - CallEcrecover0 # ef-tests #391 + - CallEcrecover0_0input # ef-tests #391 + - CallEcrecover0_completeReturnValue # ef-tests #391 + - CallEcrecover0_Gas2999 # ef-tests #517 + - CallEcrecover0_gas3000 # ef-tests #391 + - CallEcrecover0_NoGas # ef-tests #516 + - CallEcrecover0_overlappingInputOutput # ef-tests #391 + - CallEcrecover1 # ef-tests #391 + - CallEcrecover2 # ef-tests #391 + - CallEcrecover3 # ef-tests #391 + - CallEcrecover80 # ef-tests #391 + - CallEcrecoverCheckLength # ef-tests #391 + - CallEcrecoverCheckLengthWrongV # ef-tests #391 + - CallEcrecoverH_prefixed0 # ef-tests #391 + - CallEcrecoverInvalidSignature # ef-tests #391 + - CallEcrecoverR_prefixed0 # ef-tests #391 + - CallEcrecoverS_prefixed0 # ef-tests #391 + - CallEcrecoverUnrecoverableKey # ef-tests #391 + - CallEcrecoverV_prefixed0 # ef-tests #391 + - CallEcrecover_Overflow # ef-tests #391 + - CallIdentitiy_0 # ef-tests #391 + - CallIdentitiy_1 # ef-tests #391 + - CallIdentity_2 # ef-tests #391 + - CallIdentity_3 # ef-tests #391 + - CallIdentity_4 # ef-tests #391 + - CallIdentity_4_gas17 # ef-tests #391 + - CallIdentity_4_gas18 # ef-tests #391 + - CallIdentity_5 # ef-tests #391 + - CallIdentity_6_inputShorterThanOutput # ef-tests #391 + - CallRipemd160_0 # ef-tests #391 + - CallRipemd160_1 # ef-tests #391 + - CallRipemd160_2 # ef-tests #391 + - CallRipemd160_3 # ef-tests #391 + - CallRipemd160_3_postfixed0 # ef-tests #391 + - CallRipemd160_3_prefixed0 # ef-tests #391 + - CallRipemd160_4 # ef-tests #391 + - CallRipemd160_4_gas719 # ef-tests #391 + - CallRipemd160_5 # ef-tests #391 + - CallSha256_0 # ef-tests #391 + - CallSha256_1 # ef-tests #391 + - CallSha256_2 # ef-tests #391 + - CallSha256_3 # ef-tests #391 + - CallSha256_3_postfix0 # ef-tests #391 + - CallSha256_3_prefix0 # ef-tests #391 + - CallSha256_4 # ef-tests #391 + - CallSha256_4_gas99 # ef-tests #391 + - CallSha256_5 # ef-tests #391 + - ecrecoverShortBuff # ef-tests #391 + - ecrecoverWeirdV # ef-tests #391 + - modexp_0_0_0_20500 # ef-tests #391 + - modexp_0_0_0_22000 # ef-tests #391 + - modexp_0_0_0_25000 # ef-tests #391 + - modexp_0_0_0_35000 # ef-tests #391 stQuadraticComplexityTest: - - Call1MB1024Calldepth.json # ef-tests #375 - - Call20KbytesContract50_1.json # ef-tests #375 - - Call20KbytesContract50_2.json # ef-tests #375 - - Call20KbytesContract50_3.json # ef-tests #375 - - Return50000.json # ef-tests #375 - - Return50000_2.json # ef-tests #375 - - Create1000Shnghai.json # ef-tests #376 + - Call1MB1024Calldepth # ef-tests #375 + - Call20KbytesContract50_1 # ef-tests #375 + - Call20KbytesContract50_2 # ef-tests #375 + - Call20KbytesContract50_3 # ef-tests #375 + - Return50000 # ef-tests #375 + - Return50000_2 # ef-tests #375 + - Create1000Shnghai # ef-tests #376 stRecursiveCreate: - - recursiveCreate.json # ef-tests #379 - - recursiveCreateReturnValue.json # ef-tests #380 + - recursiveCreate # ef-tests #379 + - recursiveCreateReturnValue # ef-tests #380 stReturnDataTest: - - returndatacopy_following_too_big_transfer.json # ef-tests #317 - - returndatasize_bug.json # ef-tests #317 - - returndatasize_initial_zero_read.json # ef-tests #317 - - returndatasize_following_successful_create.json # ef-tests #317 - - returndatacopy_following_revert_in_create.json # ef-tests #317 - - returndatacopy_following_failing_call.json # ef-tests #317 - - returndatacopy_afterFailing_create.json # ef-tests #317 - - returndatacopy_following_successful_create.json # ef-tests #317 - - create_callprecompile_returndatasize.json # ef-tests #317 - - returndatacopy_overrun.json # ef-tests #317 - - call_then_call_value_fail_then_returndatasize.json # ef-tests #317 - - call_then_create_successful_then_returndatasize.json # ef-tests #317 - - returndatacopy_following_create.json # ef-tests #317 - - returndatacopy_initial_big_sum.json # ef-tests #317 - - call_ecrec_success_empty_then_returndatasize.json # ef-tests #317 - - returndatacopy_initial.json # ef-tests #317 - - returndatacopy_0_0_following_successful_create.json # ef-tests #317 - - clearReturnBuffer.json # ef-tests #317 - - call_outsize_then_create_successful_then_returndatasize.json # ef-tests #317 - - returndatacopy_after_failing_delegatecall.json # ef-tests #317 - - returndatasize_initial.json # ef-tests #317 - - returndatacopy_following_revert.json # ef-tests #318 - - subcallReturnMoreThenExpected.json # ef-tests #318 - - returndatacopy_after_failing_staticcall.json # ef-tests #318 - - returndatasize_after_successful_delegatecall.json # ef-tests #318 - - returndatacopy_following_call.json # ef-tests #318 - - returndatacopy_after_successful_callcode.json # ef-tests #318 - - modexp_modsize0_returndatasize.json # ef-tests #318 - - returndatacopy_initial_256.json # ef-tests #318 - - returndatasize_after_successful_callcode.json # ef-tests #318 - - returndatasize_after_successful_staticcall.json # ef-tests #318 - - returndatacopy_after_successful_delegatecall.json # ef-tests #318 - - tooLongReturnDataCopy.json # ef-tests #319 - - revertRetDataSize.json # ef-tests #320 - - returndatasize_after_failing_delegatecall.json # ef-tests #491 - - returndatasize_after_failing_staticcall.json # ef-tests #491 - - returndatasize_after_oog_after_deeper.json # ef-tests #491 - - returndatasize_after_failing_callcode.json # ef-tests #491 + - returndatacopy_following_too_big_transfer # ef-tests #317 + - returndatasize_bug # ef-tests #317 + - returndatasize_initial_zero_read # ef-tests #317 + - returndatasize_following_successful_create # ef-tests #317 + - returndatacopy_following_revert_in_create # ef-tests #317 + - returndatacopy_following_failing_call # ef-tests #317 + - returndatacopy_afterFailing_create # ef-tests #317 + - returndatacopy_following_successful_create # ef-tests #317 + - create_callprecompile_returndatasize # ef-tests #317 + - returndatacopy_overrun # ef-tests #317 + - call_then_call_value_fail_then_returndatasize # ef-tests #317 + - call_then_create_successful_then_returndatasize # ef-tests #317 + - returndatacopy_following_create # ef-tests #317 + - returndatacopy_initial_big_sum # ef-tests #317 + - call_ecrec_success_empty_then_returndatasize # ef-tests #317 + - returndatacopy_initial # ef-tests #317 + - returndatacopy_0_0_following_successful_create # ef-tests #317 + - clearReturnBuffer # ef-tests #317 + - call_outsize_then_create_successful_then_returndatasize # ef-tests #317 + - returndatacopy_after_failing_delegatecall # ef-tests #317 + - returndatasize_initial # ef-tests #317 + - returndatacopy_following_revert # ef-tests #318 + - subcallReturnMoreThenExpected # ef-tests #318 + - returndatacopy_after_failing_staticcall # ef-tests #318 + - returndatasize_after_successful_delegatecall # ef-tests #318 + - returndatacopy_following_call # ef-tests #318 + - returndatacopy_after_successful_callcode # ef-tests #318 + - modexp_modsize0_returndatasize # ef-tests #318 + - returndatacopy_initial_256 # ef-tests #318 + - returndatasize_after_successful_callcode # ef-tests #318 + - returndatasize_after_successful_staticcall # ef-tests #318 + - returndatacopy_after_successful_delegatecall # ef-tests #318 + - tooLongReturnDataCopy # ef-tests #319 + - revertRetDataSize # ef-tests #320 + - returndatasize_after_failing_delegatecall # ef-tests #491 + - returndatasize_after_failing_staticcall # ef-tests #491 + - returndatasize_after_oog_after_deeper # ef-tests #491 + - returndatasize_after_failing_callcode # ef-tests #491 stRevertTest: - - costRevert.json # ef-tests #322 - - LoopCallsDepthThenRevert.json # ef-tests #322 - - LoopCallsDepthThenRevert2.json # ef-tests #324 - - LoopCallsDepthThenRevert3.json # ef-tests #324 - - LoopCallsThenRevert.json # ef-tests #322 - - LoopDelegateCallsDepthThenRevert.json # ef-tests #322 - - PythonRevertTestTue201814-1430.json # ef-tests #538 - - RevertDepthCreateAddressCollision.json # ef-tests #322 - - RevertDepthCreateOOG.json # ef-tests #322 - - RevertInCallCode.json # ef-tests #492 - - RevertInCreateInInit.json # ef-tests #323 - - RevertOnEmptyStack.json # ef-tests #323 - - RevertOpcode.json # ef-tests #538 - - RevertOpcodeCalls.json # ef-tests #322 - - RevertOpcodeCreate.json # ef-tests #323 - - RevertOpcodeInCallsOnNonEmptyReturnData.json # ef-tests #322 - - RevertOpcodeInInit.json # ef-tests #538 - - RevertOpcodeMultipleSubCalls.json # ef-tests #322 - - RevertOpcodeWithBigOutputInInit.json # ef-tests #538 - - RevertPrecompiledTouchExactOOG.json # ef-tests #323 - - RevertPrefound.json # ef-tests #323 - - RevertPrefoundCall.json # ef-tests #322 - - RevertPrefoundEmpty.json # ef-tests #323 - - RevertPrefoundEmptyCall.json # ef-tests #323 - - RevertRemoteSubCallStorageOOG.json # ef-tests #324 - - RevertSubCallStorageOOG.json # ef-tests #538 - - RevertSubCallStorageOOG2.json # ef-tests #538 - - stateRevert.json # ef-tests #322 - - TouchToEmptyAccountRevert2.json # ef-tests #322 - - TouchToEmptyAccountRevert3.json # ef-tests #322 + - costRevert # ef-tests #322 + - LoopCallsDepthThenRevert # ef-tests #322 + - LoopCallsDepthThenRevert2 # ef-tests #324 + - LoopCallsDepthThenRevert3 # ef-tests #324 + - LoopCallsThenRevert # ef-tests #322 + - LoopDelegateCallsDepthThenRevert # ef-tests #322 + - PythonRevertTestTue201814-1430 # ef-tests #538 + - RevertDepthCreateAddressCollision # ef-tests #322 + - RevertDepthCreateOOG # ef-tests #322 + - RevertInCallCode # ef-tests #492 + - RevertInCreateInInit # ef-tests #323 + - RevertOnEmptyStack # ef-tests #323 + - RevertOpcode # ef-tests #538 + - RevertOpcodeCalls # ef-tests #322 + - RevertOpcodeCreate # ef-tests #323 + - RevertOpcodeInCallsOnNonEmptyReturnData # ef-tests #322 + - RevertOpcodeInInit # ef-tests #538 + - RevertOpcodeMultipleSubCalls # ef-tests #322 + - RevertOpcodeWithBigOutputInInit # ef-tests #538 + - RevertPrecompiledTouchExactOOG # ef-tests #323 + - RevertPrefound # ef-tests #323 + - RevertPrefoundCall # ef-tests #322 + - RevertPrefoundEmpty # ef-tests #323 + - RevertPrefoundEmptyCall # ef-tests #323 + - RevertRemoteSubCallStorageOOG # ef-tests #324 + - RevertSubCallStorageOOG # ef-tests #538 + - RevertSubCallStorageOOG2 # ef-tests #538 + - stateRevert # ef-tests #322 + - TouchToEmptyAccountRevert2 # ef-tests #322 + - TouchToEmptyAccountRevert3 # ef-tests #322 stShift: - - shiftCombinations.json # ef-tests #383 - - shiftSignedCombinations.json # ef-tests #383 + - shiftCombinations # ef-tests #383 + - shiftSignedCombinations # ef-tests #383 stSLoadTest: - - sloadGasCost.json # ef-tests #78 + - sloadGasCost # ef-tests #78 stSelfBalance: - - diffPlaces.json # ef-tests #411 - - selfBalanceCallTypes.json # ef-tests #411 - - selfBalanceUpdate.json # ef-tests #411 + - diffPlaces # ef-tests #411 + - selfBalanceCallTypes # ef-tests #411 + - selfBalanceUpdate # ef-tests #411 stSStoreTest: - - InitCollision.json # ef-tests #408 - - sstoreGas.json # ef-tests #409 - - InitCollisionNonZeroNonce.json # ef-tests #410 - - sstore_0to0.json # ef-tests #410 - - sstore_0to0to0.json # ef-tests #410 - - sstore_0to0toX.json # ef-tests #410 - - sstore_0toX.json # ef-tests #410 - - sstore_0toXto0.json # ef-tests #410 - - sstore_0toXto0toX.json # ef-tests #410 - - sstore_0toXtoX.json # ef-tests #410 - - sstore_0toXtoY.json # ef-tests #410 - - sstore_changeFromExternalCallInInitCode.json # ef-tests #410 - - sstore_gasLeft.json # ef-tests #410 - - sstore_Xto0.json # ef-tests #410 - - sstore_Xto0to0.json # ef-tests #410 - - sstore_Xto0toX.json # ef-tests #410 - - sstore_Xto0toXto0.json # ef-tests #410 - - sstore_Xto0toY.json # ef-tests #410 - - sstore_XtoX.json # ef-tests #410 - - sstore_XtoXto0.json # ef-tests #410 - - sstore_XtoXtoX.json # ef-tests #410 - - sstore_XtoXtoY.json # ef-tests #410 - - sstore_XtoY.json # ef-tests #410 - - sstore_XtoYto0.json # ef-tests #410 - - sstore_XtoYtoX.json # ef-tests #410 - - sstore_XtoYtoY.json # ef-tests #410 - - sstore_XtoYtoZ.json # ef-tests #410 + - InitCollision # ef-tests #408 + - sstoreGas # ef-tests #409 + - InitCollisionNonZeroNonce # ef-tests #410 + - sstore_0to0 # ef-tests #410 + - sstore_0to0to0 # ef-tests #410 + - sstore_0to0toX # ef-tests #410 + - sstore_0toX # ef-tests #410 + - sstore_0toXto0 # ef-tests #410 + - sstore_0toXto0toX # ef-tests #410 + - sstore_0toXtoX # ef-tests #410 + - sstore_0toXtoY # ef-tests #410 + - sstore_changeFromExternalCallInInitCode # ef-tests #410 + - sstore_gasLeft # ef-tests #410 + - sstore_Xto0 # ef-tests #410 + - sstore_Xto0to0 # ef-tests #410 + - sstore_Xto0toX # ef-tests #410 + - sstore_Xto0toXto0 # ef-tests #410 + - sstore_Xto0toY # ef-tests #410 + - sstore_XtoX # ef-tests #410 + - sstore_XtoXto0 # ef-tests #410 + - sstore_XtoXtoX # ef-tests #410 + - sstore_XtoXtoY # ef-tests #410 + - sstore_XtoY # ef-tests #410 + - sstore_XtoYto0 # ef-tests #410 + - sstore_XtoYtoX # ef-tests #410 + - sstore_XtoYtoY # ef-tests #410 + - sstore_XtoYtoZ # ef-tests #410 stZeroCallsTest: - - ZeroValue_CALL.json # ef-tests #436 + - ZeroValue_CALL # ef-tests #436 stZeroCallsRevert: - - ZeroValue_SUICIDE_OOGRevert.json # ef-tests #494 - - ZeroValue_SUICIDE_ToOneStorageKey_OOGRevert.json # ef-test #494 - - ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevert.json # ef-test #494 - - ZeroValue_SUICIDE_ToEmpty_OOGRevert.json # ef-test #494 + - ZeroValue_SUICIDE_OOGRevert # ef-tests #494 + - ZeroValue_SUICIDE_ToOneStorageKey_OOGRevert # ef-test #494 + - ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevert # ef-test #494 + - ZeroValue_SUICIDE_ToEmpty_OOGRevert # ef-test #494 stSolidityTest: - - TestContractSuicide.json # ef-test #132 - - TestCryptographicFunctions.json # ef-test #133 - - RecursiveCreateContracts.json # ef-test #134 - - ByZero.json #ef-test #135 - - ContractInheritance.json # ef-test #136 - - CallLowLevelCreatesSolidity.json # ef-test #137 - - CreateContractFromMethod.json # ef-test #138 - - TestStoreGasPrices.json # ef-test #139 - - TestContractInteraction.json # ef-test #140 - - RecursiveCreateContractsCreate4Contracts.json # ef-test #141 - - SelfDestruct.json # ef-tests #478 + - TestContractSuicide # ef-test #132 + - TestCryptographicFunctions # ef-test #133 + - RecursiveCreateContracts # ef-test #134 + - ByZero #ef-test #135 + - ContractInheritance # ef-test #136 + - CallLowLevelCreatesSolidity # ef-test #137 + - CreateContractFromMethod # ef-test #138 + - TestStoreGasPrices # ef-test #139 + - TestContractInteraction # ef-test #140 + - RecursiveCreateContractsCreate4Contracts # ef-test #141 + - SelfDestruct # ef-tests #478 stSpecialTest: - - tx_e1c174e2.json # ef-tests #412 - - eoaEmpty.json # ef-tests #413 - - selfdestructEIP2929.json # ef-tests #413 - - JUMPDEST_AttackwithJump.json # ef-tests #479 - - JUMPDEST_Attack.json # ef-tests #479 - - block504980.json # ef-tests #479 + - tx_e1c174e2 # ef-tests #412 + - eoaEmpty # ef-tests #413 + - selfdestructEIP2929 # ef-tests #413 + - JUMPDEST_AttackwithJump # ef-tests #479 + - JUMPDEST_Attack # ef-tests #479 + - block504980 # ef-tests #479 stZeroKnowledge: - - ecmul_1-2_2_28000_96.json - - ecmul_1-2_340282366920938463463374607431768211456_21000_128.json # ef-test #459 - - ecmul_1-2_340282366920938463463374607431768211456_21000_80.json # ef-test #459 - - ecmul_1-2_340282366920938463463374607431768211456_21000_96.json # ef-test #459 - - ecmul_1-2_340282366920938463463374607431768211456_28000_96.json # ef-test #459 - - ecmul_1-2_5616_21000_128.json # ef-test #459 - - ecmul_1-2_5616_21000_96.json # ef-test #459 - - ecmul_1-2_5617_21000_128.json # ef-test #459 - - ecmul_1-2_5617_21000_96.json # ef-test #459 - - ecmul_1-2_616_28000_96.json # ef-test #459 - - ecmul_1-2_9935_21000_128.json # ef-test #459 - - ecmul_1-2_9935_28000_96.json # ef-test #459 - - ecmul_1-2_9_21000_96.json # ef-test #459 - - ecmul_1-2_9_28000_96.json # ef-test #459 - - ecmul_7827-6598_0_21000_128.json # ef-test #459 - - ecmul_7827-6598_0_21000_64.json # ef-test #459 - - ecmul_7827-6598_0_21000_80.json # ef-test #459 - - ecmul_7827-6598_0_21000_96.json # ef-test #459 - - ecmul_7827-6598_1456_21000_128.json # ef-test #459 - - ecmul_7827-6598_1456_21000_80.json # ef-test #459 - - ecmul_7827-6598_1456_21000_96.json # ef-test #459 - - ecmul_7827-6598_1456_28000_96.json # ef-test #459 - - ecmul_7827-6598_1_21000_96.json # ef-test #459 - - ecmul_7827-6598_1_28000_96.json # ef-test #459 - - ecmul_7827-6598_2_21000_128.json # ef-test #459 - - ecmul_7827-6598_2_21000_96.json # ef-test #459 - - ecmul_7827-6598_2_28000_96.json # ef-test #459 - - ecmul_7827-6598_5616_21000_128.json # ef-test #459 - - ecmul_7827-6598_5616_21000_96.json # ef-test #459 - - ecmul_7827-6598_5616_28000_96.json # ef-test #459 - - ecmul_7827-6598_5617_21000_128.json # ef-test #459 - - ecmul_7827-6598_5617_21000_96.json # ef-test #459 - - ecmul_7827-6598_9935_21000_128.json # ef-test #459 - - ecmul_7827-6598_9935_21000_96.json # ef-test #459 - - ecmul_7827-6598_9935_28000_96.json # ef-test #459 - - ecmul_7827-6598_9_21000_128.json # ef-test #459 - - ecmul_7827-6598_9_21000_96.json # ef-test #459 - - ecmul_7827-6598_9_28000_96.json # ef-test #459 - - ecpairing_empty_data.json # ef-test #459 - - ecpairing_empty_data_insufficient_gas.json # ef-test #459 - - ecpairing_one_point_fail.json # ef-test #459 - - ecpairing_one_point_with_g1_zero.json # ef-test #459 - - ecpairing_three_point_fail_1.json # ef-test #459 - - ecpairing_two_point_fail_1.json # ef-test #459 - - ecpairing_two_point_fail_2.json # ef-test #459 - - ecpairing_two_point_match_1.json # ef-test #459 - - ecpairing_two_point_match_5.json # ef-test #459 - - pairingTest.json # ef-test #459 - - pointAdd.json # ef-test #459 - - pointAddTrunc.json # ef-test #459 - - pointMulAdd.json # ef-test #459 - - pointMulAdd2.json # ef-test #459 - - ecmul_1-2_9935_21000_96.json # ef-test #460 - - ecmul_1-2_9_21000_128.json # ef-test #460 - - ecmul_1-3_0_21000_96.json # ef-test #460 - - ecmul_1-3_2_28000_128.json # ef-test #460 - - ecmul_1-3_5617_21000_96.json # ef-test #460 - - ecmul_7827-6598_1_21000_128.json # ef-test #460 - - ecpairing_one_point_not_in_subgroup.json # ef-test #460 - - ecpairing_perturb_zeropoint_by_one.json # ef-test #460 + - ecmul_1-2_2_28000_96 + - ecmul_1-2_340282366920938463463374607431768211456_21000_128 # ef-test #459 + - ecmul_1-2_340282366920938463463374607431768211456_21000_80 # ef-test #459 + - ecmul_1-2_340282366920938463463374607431768211456_21000_96 # ef-test #459 + - ecmul_1-2_340282366920938463463374607431768211456_28000_96 # ef-test #459 + - ecmul_1-2_5616_21000_128 # ef-test #459 + - ecmul_1-2_5616_21000_96 # ef-test #459 + - ecmul_1-2_5617_21000_128 # ef-test #459 + - ecmul_1-2_5617_21000_96 # ef-test #459 + - ecmul_1-2_616_28000_96 # ef-test #459 + - ecmul_1-2_9935_21000_128 # ef-test #459 + - ecmul_1-2_9935_28000_96 # ef-test #459 + - ecmul_1-2_9_21000_96 # ef-test #459 + - ecmul_1-2_9_28000_96 # ef-test #459 + - ecmul_7827-6598_0_21000_128 # ef-test #459 + - ecmul_7827-6598_0_21000_64 # ef-test #459 + - ecmul_7827-6598_0_21000_80 # ef-test #459 + - ecmul_7827-6598_0_21000_96 # ef-test #459 + - ecmul_7827-6598_1456_21000_128 # ef-test #459 + - ecmul_7827-6598_1456_21000_80 # ef-test #459 + - ecmul_7827-6598_1456_21000_96 # ef-test #459 + - ecmul_7827-6598_1456_28000_96 # ef-test #459 + - ecmul_7827-6598_1_21000_96 # ef-test #459 + - ecmul_7827-6598_1_28000_96 # ef-test #459 + - ecmul_7827-6598_2_21000_128 # ef-test #459 + - ecmul_7827-6598_2_21000_96 # ef-test #459 + - ecmul_7827-6598_2_28000_96 # ef-test #459 + - ecmul_7827-6598_5616_21000_128 # ef-test #459 + - ecmul_7827-6598_5616_21000_96 # ef-test #459 + - ecmul_7827-6598_5616_28000_96 # ef-test #459 + - ecmul_7827-6598_5617_21000_128 # ef-test #459 + - ecmul_7827-6598_5617_21000_96 # ef-test #459 + - ecmul_7827-6598_9935_21000_128 # ef-test #459 + - ecmul_7827-6598_9935_21000_96 # ef-test #459 + - ecmul_7827-6598_9935_28000_96 # ef-test #459 + - ecmul_7827-6598_9_21000_128 # ef-test #459 + - ecmul_7827-6598_9_21000_96 # ef-test #459 + - ecmul_7827-6598_9_28000_96 # ef-test #459 + - ecpairing_empty_data # ef-test #459 + - ecpairing_empty_data_insufficient_gas # ef-test #459 + - ecpairing_one_point_fail # ef-test #459 + - ecpairing_one_point_with_g1_zero # ef-test #459 + - ecpairing_three_point_fail_1 # ef-test #459 + - ecpairing_two_point_fail_1 # ef-test #459 + - ecpairing_two_point_fail_2 # ef-test #459 + - ecpairing_two_point_match_1 # ef-test #459 + - ecpairing_two_point_match_5 # ef-test #459 + - pairingTest # ef-test #459 + - pointAdd # ef-test #459 + - pointAddTrunc # ef-test #459 + - pointMulAdd # ef-test #459 + - pointMulAdd2 # ef-test #459 + - ecmul_1-2_9935_21000_96 # ef-test #460 + - ecmul_1-2_9_21000_128 # ef-test #460 + - ecmul_1-3_0_21000_96 # ef-test #460 + - ecmul_1-3_2_28000_128 # ef-test #460 + - ecmul_1-3_5617_21000_96 # ef-test #460 + - ecmul_7827-6598_1_21000_128 # ef-test #460 + - ecpairing_one_point_not_in_subgroup # ef-test #460 + - ecpairing_perturb_zeropoint_by_one # ef-test #460 stZeroKnowledge2: - - ecadd_0-0_0-0_21000_0.json # ef-test #461 - - ecadd_0-0_0-0_21000_128.json # ef-test #461 - - ecadd_0-0_0-0_21000_64.json # ef-test #461 - - ecadd_0-0_0-0_21000_80.json # ef-test #461 - - ecadd_0-0_0-0_25000_128.json # ef-test #461 - - ecadd_0-0_1-2_21000_128.json # ef-test #461 - - ecadd_0-0_1-2_21000_192.json # ef-test #461 - - ecadd_0-0_1-2_25000_128.json # ef-test #461 - - ecadd_1-2_0-0_21000_128.json # ef-test #461 - - ecadd_1-2_0-0_21000_192.json # ef-test #461 - - ecadd_1-2_0-0_21000_64.json # ef-test #461 - - ecadd_1-2_1-2_21000_128.json # ef-test #461 - - ecadd_1-2_1-2_21000_192.json # ef-test #461 - - ecadd_1-2_1-2_25000_128.json # ef-test #461 - - ecadd_1145-3932_1145-4651_21000_192.json # ef-test #461 - - ecadd_1145-3932_1145-4651_25000_192.json # ef-test #461 - - ecadd_1145-3932_2969-1336_21000_128.json # ef-test #461 - - ecadd_1145-3932_2969-1336_25000_128.json # ef-test #461 - - ecmul_0-0_0_21000_0.json # ef-test #461 - - ecmul_0-0_0_21000_128.json # ef-test #461 - - ecmul_0-0_0_21000_40.json # ef-test #461 - - ecmul_0-0_0_21000_64.json # ef-test #461 - - ecmul_0-0_0_21000_80.json # ef-test #461 - - ecmul_0-0_0_21000_96.json # ef-test #461 - - ecmul_0-0_0_28000_96.json # ef-test #461 - - ecmul_0-0_1_21000_128.json # ef-test #461 - - ecmul_0-0_1_21000_96.json # ef-test #461 - - ecmul_0-0_2_21000_128.json # ef-test #461 - - ecmul_0-0_2_21000_96.json # ef-test #461 - - ecmul_0-0_2_28000_96.json # ef-test #461 - - ecmul_0-0_340282366920938463463374607431768211456_21000_128.json # ef-test #461 - - ecmul_0-0_340282366920938463463374607431768211456_21000_80.json # ef-test #461 - - ecmul_0-0_340282366920938463463374607431768211456_21000_96.json # ef-test #461 - - ecmul_0-0_340282366920938463463374607431768211456_28000_96.json # ef-test #461 - - ecmul_0-0_5616_21000_128.json # ef-test #461 - - ecmul_0-0_5616_21000_96.json # ef-test #461 - - ecmul_0-0_5616_28000_96.json # ef-test #461 - - ecmul_0-0_5617_21000_128.json # ef-test #461 - - ecmul_0-0_5617_21000_96.json # ef-test #461 - - ecmul_0-0_5617_28000_96.json # ef-test #461 - - ecmul_0-0_9935_21000_128.json # ef-test #461 - - ecmul_0-0_9935_21000_96.json # ef-test #461 - - ecmul_0-0_9_21000_128.json # ef-test #461 - - ecmul_0-0_9_21000_96.json # ef-test #461 - - ecmul_0-0_9_28000_96.json # ef-test #461 - - ecmul_1-2_0_21000_128.json # ef-test #461 - - ecmul_1-2_0_21000_64.json # ef-test #461 - - ecmul_1-2_0_21000_80.json # ef-test #461 - - ecmul_1-2_0_21000_96.json # ef-test #461 - - ecmul_1-2_1_21000_128.json # ef-test #461 - - ecmul_1-2_1_21000_96.json # ef-test #461 - - ecmul_1-2_1_28000_96.json # ef-test #461 - - ecmul_1-2_2_21000_128.json # ef-test #461 - - ecmul_1-2_2_21000_96.json # ef-test #461 - - ecadd_0-0_0-0_21000_192.json # ef-test #462 - - ecadd_1-2_0-0_25000_192.json # ef-test #462 - - ecadd_1-3_0-0_25000_80.json # ef-test #462 - - ecmul_0-0_340282366920938463463374607431768211456_28000_128.json # ef-test #462 - - ecmul_0-3_0_21000_80.json # ef-test #462 + - ecadd_0-0_0-0_21000_0 # ef-test #461 + - ecadd_0-0_0-0_21000_128 # ef-test #461 + - ecadd_0-0_0-0_21000_64 # ef-test #461 + - ecadd_0-0_0-0_21000_80 # ef-test #461 + - ecadd_0-0_0-0_25000_128 # ef-test #461 + - ecadd_0-0_1-2_21000_128 # ef-test #461 + - ecadd_0-0_1-2_21000_192 # ef-test #461 + - ecadd_0-0_1-2_25000_128 # ef-test #461 + - ecadd_1-2_0-0_21000_128 # ef-test #461 + - ecadd_1-2_0-0_21000_192 # ef-test #461 + - ecadd_1-2_0-0_21000_64 # ef-test #461 + - ecadd_1-2_1-2_21000_128 # ef-test #461 + - ecadd_1-2_1-2_21000_192 # ef-test #461 + - ecadd_1-2_1-2_25000_128 # ef-test #461 + - ecadd_1145-3932_1145-4651_21000_192 # ef-test #461 + - ecadd_1145-3932_1145-4651_25000_192 # ef-test #461 + - ecadd_1145-3932_2969-1336_21000_128 # ef-test #461 + - ecadd_1145-3932_2969-1336_25000_128 # ef-test #461 + - ecmul_0-0_0_21000_0 # ef-test #461 + - ecmul_0-0_0_21000_128 # ef-test #461 + - ecmul_0-0_0_21000_40 # ef-test #461 + - ecmul_0-0_0_21000_64 # ef-test #461 + - ecmul_0-0_0_21000_80 # ef-test #461 + - ecmul_0-0_0_21000_96 # ef-test #461 + - ecmul_0-0_0_28000_96 # ef-test #461 + - ecmul_0-0_1_21000_128 # ef-test #461 + - ecmul_0-0_1_21000_96 # ef-test #461 + - ecmul_0-0_2_21000_128 # ef-test #461 + - ecmul_0-0_2_21000_96 # ef-test #461 + - ecmul_0-0_2_28000_96 # ef-test #461 + - ecmul_0-0_340282366920938463463374607431768211456_21000_128 # ef-test #461 + - ecmul_0-0_340282366920938463463374607431768211456_21000_80 # ef-test #461 + - ecmul_0-0_340282366920938463463374607431768211456_21000_96 # ef-test #461 + - ecmul_0-0_340282366920938463463374607431768211456_28000_96 # ef-test #461 + - ecmul_0-0_5616_21000_128 # ef-test #461 + - ecmul_0-0_5616_21000_96 # ef-test #461 + - ecmul_0-0_5616_28000_96 # ef-test #461 + - ecmul_0-0_5617_21000_128 # ef-test #461 + - ecmul_0-0_5617_21000_96 # ef-test #461 + - ecmul_0-0_5617_28000_96 # ef-test #461 + - ecmul_0-0_9935_21000_128 # ef-test #461 + - ecmul_0-0_9935_21000_96 # ef-test #461 + - ecmul_0-0_9_21000_128 # ef-test #461 + - ecmul_0-0_9_21000_96 # ef-test #461 + - ecmul_0-0_9_28000_96 # ef-test #461 + - ecmul_1-2_0_21000_128 # ef-test #461 + - ecmul_1-2_0_21000_64 # ef-test #461 + - ecmul_1-2_0_21000_80 # ef-test #461 + - ecmul_1-2_0_21000_96 # ef-test #461 + - ecmul_1-2_1_21000_128 # ef-test #461 + - ecmul_1-2_1_21000_96 # ef-test #461 + - ecmul_1-2_1_28000_96 # ef-test #461 + - ecmul_1-2_2_21000_128 # ef-test #461 + - ecmul_1-2_2_21000_96 # ef-test #461 + - ecadd_0-0_0-0_21000_192 # ef-test #462 + - ecadd_1-2_0-0_25000_192 # ef-test #462 + - ecadd_1-3_0-0_25000_80 # ef-test #462 + - ecmul_0-0_340282366920938463463374607431768211456_28000_128 # ef-test #462 + - ecmul_0-3_0_21000_80 # ef-test #462 stSystemOperationsTest: - - ABAcalls0.json # ef-test #450 - - ABAcalls1.json # ef-test #450 - - ABAcalls2.json # ef-test #450 - - ABAcalls3.json # ef-test #450 - - ABAcallsSuicide0.json # ef-test #450 - - Call10.json # ef-test #450 - - callerAccountBalance.json # ef-test #450 - - CallRecursiveBomb0.json # ef-test #450 - - CallRecursiveBomb0_OOG_atMaxCallDepth.json # ef-test #450 - - CallRecursiveBomb1.json # ef-test #450 - - CallRecursiveBomb2.json # ef-test #450 - - CallRecursiveBomb3.json # ef-test #450 - - CallRecursiveBombLog.json # ef-test #450 - - CallRecursiveBombLog2.json # ef-test #450 - - CallToNameRegistratorAddressTooBigRight.json # ef-test #450 - - PostToReturn1.json # ef-test #450 - - CreateHashCollision.json # ef-test #451 - - createNameRegistratorValueTooHigh.json # ef-test #451 - - createNameRegistratorZeroMem.json # ef-test #451 - - createNameRegistratorZeroMem2.json # ef-test #451 - - createNameRegistratorZeroMemExpansion.json # ef-test #451 - - createWithInvalidOpcode.json # ef-test #451 - - testRandomTest.json # ef-test #451 - - doubleSelfdestructTest.json # ef-test #452 - - extcodecopy.json # ef-test #452 - - multiSelfdestruct.json # ef-test #452 - - suicideCallerAddresTooBigRight.json # ef-test #452 - - suicideNotExistingAccount.json # ef-test #452 - - CallToNameRegistratorNotMuchMemory0.json # ef-test #490 - - CallToReturn1.json # ef-test #490 - - CallToNameRegistratorAddressTooBigLeft.json # ef-test #490 - - callcodeTo0.json # ef-test #490 - - ABAcallsSuicide1.json # ef-test #490 - - callcodeToNameRegistrator0.json # ef-test #490 - - CallToNameRegistratorZeorSizeMemExpansion.json # ef-test #490 - - callcodeToNameRegistratorZeroMemExpanion.json # ef-test #490 - - createNameRegistrator.json # ef-test #490 - - CallToReturn1ForDynamicJump1.json # ef-test #490 - - callcodeToNameRegistratorAddresTooBigLeft.json # ef-test #490 - - CallToNameRegistratorOutOfGas.json # ef-test #490 - - callcodeToNameRegistratorAddresTooBigRight.json # ef-test #490 - - CallToNameRegistratorNotMuchMemory1.json # ef-test #490 - - doubleSelfdestructTouch.json # ef-test #490 - - CalltoReturn2.json # ef-test #490 - - callcodeToReturn1.json # ef-test #490 - - CallToReturn1ForDynamicJump0.json # ef-test #490 - - CallToNameRegistratorNotMuchMemory0.json # ef-test #490 - - CallToNameRegistratorAddressTooBigLeft.json # ef-test #490 - - CallToNameRegistratorTooMuchMemory2.json # ef-test #523 - - suicideCaller.json # ef-test #530 - - suicideCallerAddresTooBigLeft.json # ef-test #530 - - suicideOrigin.json # ef-test #530 + - ABAcalls0 # ef-test #450 + - ABAcalls1 # ef-test #450 + - ABAcalls2 # ef-test #450 + - ABAcalls3 # ef-test #450 + - ABAcallsSuicide0 # ef-test #450 + - Call10 # ef-test #450 + - callerAccountBalance # ef-test #450 + - CallRecursiveBomb0 # ef-test #450 + - CallRecursiveBomb0_OOG_atMaxCallDepth # ef-test #450 + - CallRecursiveBomb1 # ef-test #450 + - CallRecursiveBomb2 # ef-test #450 + - CallRecursiveBomb3 # ef-test #450 + - CallRecursiveBombLog # ef-test #450 + - CallRecursiveBombLog2 # ef-test #450 + - CallToNameRegistratorAddressTooBigRight # ef-test #450 + - PostToReturn1 # ef-test #450 + - CreateHashCollision # ef-test #451 + - createNameRegistratorValueTooHigh # ef-test #451 + - createNameRegistratorZeroMem # ef-test #451 + - createNameRegistratorZeroMem2 # ef-test #451 + - createNameRegistratorZeroMemExpansion # ef-test #451 + - createWithInvalidOpcode # ef-test #451 + - testRandomTest # ef-test #451 + - doubleSelfdestructTest # ef-test #452 + - extcodecopy # ef-test #452 + - multiSelfdestruct # ef-test #452 + - suicideCallerAddresTooBigRight # ef-test #452 + - suicideNotExistingAccount # ef-test #452 + - CallToNameRegistratorNotMuchMemory0 # ef-test #490 + - CallToReturn1 # ef-test #490 + - CallToNameRegistratorAddressTooBigLeft # ef-test #490 + - callcodeTo0 # ef-test #490 + - ABAcallsSuicide1 # ef-test #490 + - callcodeToNameRegistrator0 # ef-test #490 + - CallToNameRegistratorZeorSizeMemExpansion # ef-test #490 + - callcodeToNameRegistratorZeroMemExpanion # ef-test #490 + - createNameRegistrator # ef-test #490 + - CallToReturn1ForDynamicJump1 # ef-test #490 + - callcodeToNameRegistratorAddresTooBigLeft # ef-test #490 + - CallToNameRegistratorOutOfGas # ef-test #490 + - callcodeToNameRegistratorAddresTooBigRight # ef-test #490 + - CallToNameRegistratorNotMuchMemory1 # ef-test #490 + - doubleSelfdestructTouch # ef-test #490 + - CalltoReturn2 # ef-test #490 + - callcodeToReturn1 # ef-test #490 + - CallToReturn1ForDynamicJump0 # ef-test #490 + - CallToNameRegistratorNotMuchMemory0 # ef-test #490 + - CallToNameRegistratorAddressTooBigLeft # ef-test #490 + - CallToNameRegistratorTooMuchMemory2 # ef-test #523 + - suicideCaller # ef-test #530 + - suicideCallerAddresTooBigLeft # ef-test #530 + - suicideOrigin # ef-test #530 stStaticFlagEnabled: - - CallcodeToPrecompileFromCalledContract.json # ef-test #443 - - CallcodeToPrecompileFromContractInitialization.json # ef-test #443 - - CallWithNOTZeroValueToPrecompileFromContractInitialization.json # ef-test #443 - - CallWithZeroValueToPrecompileFromCalledContract.json # ef-test #443 - - CallWithZeroValueToPrecompileFromContractInitialization.json # ef-test #443 - - CallcodeToPrecompileFromTransaction.json # ef-test #444 - - CallWithNOTZeroValueToPrecompileFromCalledContract.json # ef-test #444 - - CallWithZeroValueToPrecompileFromTransaction.json # ef-test #444 - - CallWithNOTZeroValueToPrecompileFromTransaction.json # ef-test #444 - - DelegatecallToPrecompileFromCalledContract.json # ef-test #443 - - DelegatecallToPrecompileFromContractInitialization.json # ef-test #443 - - DelegatecallToPrecompileFromTransaction.json # ef-test #444 - - StaticcallForPrecompilesIssue683.json # ef-test #444 + - CallcodeToPrecompileFromCalledContract # ef-test #443 + - CallcodeToPrecompileFromContractInitialization # ef-test #443 + - CallWithNOTZeroValueToPrecompileFromContractInitialization # ef-test #443 + - CallWithZeroValueToPrecompileFromCalledContract # ef-test #443 + - CallWithZeroValueToPrecompileFromContractInitialization # ef-test #443 + - CallcodeToPrecompileFromTransaction # ef-test #444 + - CallWithNOTZeroValueToPrecompileFromCalledContract # ef-test #444 + - CallWithZeroValueToPrecompileFromTransaction # ef-test #444 + - CallWithNOTZeroValueToPrecompileFromTransaction # ef-test #444 + - DelegatecallToPrecompileFromCalledContract # ef-test #443 + - DelegatecallToPrecompileFromContractInitialization # ef-test #443 + - DelegatecallToPrecompileFromTransaction # ef-test #444 + - StaticcallForPrecompilesIssue683 # ef-test #444 stWalletTest: - - walletConfirm.json # ef-test #429 - - walletExecuteOverDailyLimitMultiOwner.json # ef-test #430 - - walletExecuteOverDailyLimitOnlyOneOwner.json # ef-test #430 - - walletExecuteOverDailyLimitOnlyOneOwnerNew.json # ef-test #430 - - walletExecuteUnderDailyLimit.json # ef-test #430 - - dayLimitConstructionOOG.json # ef-test #531 - - walletConstructionOOG.json # ef-test #531 - - multiOwnedConstructionNotEnoughGasPartial.json # ef-test #531 - - walletKill.json # ef-test #531 + - walletConfirm # ef-test #429 + - walletExecuteOverDailyLimitMultiOwner # ef-test #430 + - walletExecuteOverDailyLimitOnlyOneOwner # ef-test #430 + - walletExecuteOverDailyLimitOnlyOneOwnerNew # ef-test #430 + - walletExecuteUnderDailyLimit # ef-test #430 + - dayLimitConstructionOOG # ef-test #531 + - walletConstructionOOG # ef-test #531 + - multiOwnedConstructionNotEnoughGasPartial # ef-test #531 + - walletKill # ef-test #531 stStaticCall: - - StaticcallToPrecompileFromContractInitialization.json # ef-tests #421 - - static_CallContractToCreateContractAndCallItOOG.json # ef-tests #421 - - static_CallContractToCreateContractOOG.json # ef-tests #421 - - static_CallContractToCreateContractOOGBonusGas.json # ef-tests #421 - - static_CallContractToCreateContractWhichWouldCreateContractIfCalled.json # ef-tests #421 - - static_callCreate2.json # ef-tests #421 - - static_callCreate3.json # ef-tests #421 - - static_CREATE_EmptyContractAndCallIt_0wei.json # ef-tests #421 - - static_CREATE_EmptyContractWithStorageAndCallIt_0wei.json # ef-tests #421 - - static_RETURN_BoundsOOG.json # ef-tests #421 - - static_contractCreationMakeCallThatAskMoreGasThenTransactionProvided.json # ef-tests #422 - - static_contractCreationOOGdontLeaveEmptyContractViaTransaction.json # ef-tests #422 - - static_CallSha256_1_nonzeroValue.json # ef-tests #423 - - static_CallIdentity_1_nonzeroValue.json # ef-tests #423 - - StaticcallToPrecompileFromCalledContract.json # ef-tests #424 - - StaticcallToPrecompileFromTransaction.json # ef-tests #424 - - static_ABAcalls0.json # ef-tests #424 - - static_ABAcalls1.json # ef-tests #424 - - static_ABAcalls2.json # ef-tests #424 - - static_ABAcalls3.json # ef-tests #424 - - static_ABAcallsSuicide0.json # ef-tests #424 - - static_Call10.json # ef-tests #424 - - static_Call1024BalanceTooLow.json # ef-tests #424 - - static_Call1024BalanceTooLow2.json # ef-tests #424 - - static_Call1024OOG.json # ef-tests #424 - - static_Call1024PreCalls.json # ef-tests #424 - - static_Call1024PreCalls2.json # ef-tests #424 - - static_Call1024PreCalls3.json # ef-tests #424 - - static_Call1MB1024Calldepth.json # ef-tests #424 - - static_Call50000.json # ef-tests #424 - - static_Call50000bytesContract50_1.json # ef-tests #424 - - static_Call50000bytesContract50_2.json # ef-tests #424 - - static_Call50000bytesContract50_3.json # ef-tests #424 - - static_Call50000_ecrec.json # ef-tests #424 - - static_Call50000_identity.json # ef-tests #424 - - static_Call50000_identity2.json # ef-tests #424 - - static_Call50000_rip160.json # ef-tests #424 - - static_CallAskMoreGasOnDepth2ThenTransactionHas.json # ef-tests #424 - - static_callBasic.json # ef-tests #424 - - static_callcallcallcode_001.json # ef-tests #424 - - static_callcallcallcode_001_2.json # ef-tests #424 - - static_callcallcallcode_001_OOGE.json # ef-tests #424 - - static_callcallcallcode_001_OOGE_2.json # ef-tests #424 - - static_callcallcallcode_001_OOGMAfter.json # ef-tests #424 - - static_callcallcallcode_001_OOGMAfter2.json # ef-tests #424 - - static_callcallcallcode_001_OOGMAfter_2.json # ef-tests #424 - - static_callcallcallcode_001_OOGMAfter_3.json # ef-tests #424 - - static_callcallcallcode_001_OOGMBefore.json # ef-tests #424 - - static_callcallcallcode_001_OOGMBefore2.json # ef-tests #424 - - static_callcallcallcode_001_SuicideEnd.json # ef-tests #424 - - static_callcallcallcode_001_SuicideEnd2.json # ef-tests #424 - - static_callcallcallcode_001_SuicideMiddle.json # ef-tests #424 - - static_callcallcallcode_001_SuicideMiddle2.json # ef-tests #424 - - static_callcallcall_000.json # ef-tests #424 - - static_callcallcall_000_OOGE.json # ef-tests #424 - - static_callcallcall_000_OOGMAfter.json # ef-tests #424 - - static_callcallcall_000_OOGMAfter2.json # ef-tests #424 - - static_callcallcall_000_OOGMBefore.json # ef-tests #424 - - static_callcallcall_000_SuicideEnd.json # ef-tests #424 - - static_callcallcall_000_SuicideMiddle.json # ef-tests #424 - - static_callcallcodecallcode_011.json # ef-tests #424 - - static_callcallcodecallcode_011_2.json # ef-tests #424 - - static_callcallcodecallcode_011_OOGE.json # ef-tests #424 - - static_callcallcodecallcode_011_OOGE_2.json # ef-tests #424 - - static_callcallcodecallcode_011_OOGMAfter.json # ef-tests #424 - - static_callcallcodecallcode_011_OOGMAfter2.json # ef-tests #424 - - static_callcallcodecallcode_011_OOGMAfter_1.json # ef-tests #424 - - static_callcallcodecallcode_011_OOGMAfter_2.json # ef-tests #424 - - static_callcallcodecallcode_011_OOGMBefore.json # ef-tests #424 - - static_callcallcodecallcode_011_OOGMBefore2.json # ef-tests #424 - - static_callcallcodecallcode_011_SuicideEnd.json # ef-tests #424 - - static_callcallcodecallcode_011_SuicideEnd2.json # ef-tests #424 - - static_callcallcodecallcode_011_SuicideMiddle.json # ef-tests #424 - - static_callcallcodecallcode_011_SuicideMiddle2.json # ef-tests #424 - - static_callcallcodecallcode_ABCB_RECURSIVE.json # ef-tests #424 - - static_callcallcodecallcode_ABCB_RECURSIVE2.json # ef-tests #424 - - static_callcallcodecall_010.json # ef-tests #424 - - static_callcallcodecall_010_2.json # ef-tests #424 - - static_callcallcodecall_010_OOGE.json # ef-tests #424 - - static_callcallcodecall_010_OOGE_2.json # ef-tests #424 - - static_callcallcodecall_010_OOGMAfter.json # ef-tests #424 - - static_callcallcodecall_010_OOGMAfter2.json # ef-tests #424 - - static_callcallcodecall_010_OOGMAfter_2.json # ef-tests #424 - - static_callcallcodecall_010_OOGMAfter_3.json # ef-tests #424 - - static_callcallcodecall_010_OOGMBefore.json # ef-tests #424 - - static_callcallcodecall_010_OOGMBefore2.json # ef-tests #424 - - static_callcallcodecall_010_SuicideEnd.json # ef-tests #424 - - static_callcallcodecall_010_SuicideEnd2.json # ef-tests #424 - - static_callcallcodecall_010_SuicideMiddle.json # ef-tests #424 - - static_callcallcodecall_010_SuicideMiddle2.json # ef-tests #424 - - static_callcallcodecall_ABCB_RECURSIVE.json # ef-tests #424 - - static_callcallcodecall_ABCB_RECURSIVE2.json # ef-tests #424 - - static_callcallcode_01_2.json # ef-tests #424 - - static_callcallcode_01_OOGE_2.json # ef-tests #424 - - static_callcallcode_01_SuicideEnd.json # ef-tests #424 - - static_callcallcode_01_SuicideEnd2.json # ef-tests #424 - - static_callcall_00.json # ef-tests #424 - - static_callcall_00_OOGE.json # ef-tests #424 - - static_callcall_00_OOGE_1.json # ef-tests #424 - - static_callChangeRevert.json # ef-tests #424 - - static_callcodecallcallcode_101.json # ef-tests #424 - - static_callcodecallcallcode_101_2.json # ef-tests #424 - - static_callcodecallcallcode_101_OOGE.json # ef-tests #424 - - static_callcodecallcallcode_101_OOGE_2.json # ef-tests #424 - - static_callcodecallcallcode_101_OOGMAfter.json # ef-tests #424 - - static_callcodecallcallcode_101_OOGMAfter2.json # ef-tests #424 - - static_callcodecallcallcode_101_OOGMAfter_1.json # ef-tests #424 - - static_callcodecallcallcode_101_OOGMAfter_3.json # ef-tests #424 - - static_callcodecallcallcode_101_OOGMBefore.json # ef-tests #424 - - static_callcodecallcallcode_101_OOGMBefore2.json # ef-tests #424 - - static_callcodecallcallcode_101_SuicideEnd.json # ef-tests #424 - - static_callcodecallcallcode_101_SuicideEnd2.json # ef-tests #424 - - static_callcodecallcallcode_101_SuicideMiddle.json # ef-tests #424 - - static_callcodecallcallcode_101_SuicideMiddle2.json # ef-tests #424 - - static_callcodecallcallcode_ABCB_RECURSIVE.json # ef-tests #424 - - static_callcodecallcallcode_ABCB_RECURSIVE2.json # ef-tests #424 - - static_callcodecallcall_100.json # ef-tests #424 - - static_callcodecallcall_100_2.json # ef-tests #424 - - static_callcodecallcall_100_OOGE.json # ef-tests #425 - - static_callcodecallcall_100_OOGE2.json # ef-tests #425 - - static_callcodecallcall_100_OOGMAfter.json # ef-tests #425 - - static_callcodecallcall_100_OOGMAfter2.json # ef-tests #425 - - static_callcodecallcall_100_OOGMAfter_2.json # ef-tests #425 - - static_callcodecallcall_100_OOGMAfter_3.json # ef-tests #425 - - static_callcodecallcall_100_OOGMBefore.json # ef-tests #425 - - static_callcodecallcall_100_OOGMBefore2.json # ef-tests #425 - - static_callcodecallcall_100_SuicideEnd.json # ef-tests #425 - - static_callcodecallcall_100_SuicideEnd2.json # ef-tests #425 - - static_callcodecallcall_100_SuicideMiddle.json # ef-tests #425 - - static_callcodecallcall_100_SuicideMiddle2.json # ef-tests #425 - - static_callcodecallcall_ABCB_RECURSIVE.json # ef-tests #425 - - static_callcodecallcall_ABCB_RECURSIVE2.json # ef-tests #425 - - static_callcodecallcodecallcode_111_SuicideEnd.json # ef-tests #425 - - static_callcodecallcodecall_110.json # ef-tests #425 - - static_callcodecallcodecall_1102.json # ef-tests #425 - - static_callcodecallcodecall_110_2.json # ef-tests #425 - - static_callcodecallcodecall_110_OOGE.json # ef-tests #425 - - static_callcodecallcodecall_110_OOGE2.json # ef-tests #425 - - static_callcodecallcodecall_110_OOGMAfter.json # ef-tests #425 - - static_callcodecallcodecall_110_OOGMAfter2.json # ef-tests #425 - - static_callcodecallcodecall_110_OOGMAfter_2.json # ef-tests #425 - - static_callcodecallcodecall_110_OOGMAfter_3.json # ef-tests #425 - - static_callcodecallcodecall_110_OOGMBefore.json # ef-tests #425 - - static_callcodecallcodecall_110_OOGMBefore2.json # ef-tests #425 - - static_callcodecallcodecall_ABCB_RECURSIVE.json # ef-tests #425 - - static_callcodecallcodecall_ABCB_RECURSIVE2.json # ef-tests #425 - - static_callcodecall_10.json # ef-tests #425 - - static_callcodecall_10_2.json # ef-tests #425 - - static_callcodecall_10_OOGE.json # ef-tests #425 - - static_callcodecall_10_OOGE_2.json # ef-tests #425 - - static_callcode_checkPC.json # ef-tests #425 - - static_callCreate.json # ef-tests #425 - - static_calldelcode_01.json # ef-tests #425 - - static_calldelcode_01_OOGE.json # ef-tests #425 - - static_CallEcrecover0_0input.json # ef-tests #425 - - static_CallEcrecover1.json # ef-tests #425 - - static_CallEcrecover2.json # ef-tests #425 - - static_CallEcrecover80.json # ef-tests #425 - - static_CallEcrecoverCheckLengthWrongV.json # ef-tests #425 - - static_CallEcrecoverR_prefixed0.json # ef-tests #425 - - static_CallIdentitiy_1.json # ef-tests #425 - - static_CallIdentity_5.json # ef-tests #425 - - static_CallLoseGasOOG.json # ef-tests #425 - - static_callOutput1.json # ef-tests #425 - - static_callOutput2.json # ef-tests #425 - - static_callOutput3.json # ef-tests #425 - - static_callOutput3Fail.json # ef-tests #425 - - static_callOutput3partial.json # ef-tests #425 - - static_callOutput3partialFail.json # ef-tests #425 - - static_CallRecursiveBomb0.json # ef-tests #425 - - static_CallRecursiveBomb0_OOG_atMaxCallDepth.json # ef-tests #425 - - static_CallRecursiveBomb1.json # ef-tests #425 - - static_CallRecursiveBomb2.json # ef-tests #425 - - static_CallRecursiveBomb3.json # ef-tests #425 - - static_CallRecursiveBombLog.json # ef-tests #425 - - static_CallRecursiveBombLog2.json # ef-tests #425 - - static_CallRecursiveBombPreCall.json # ef-tests #425 - - static_CallRecursiveBombPreCall2.json # ef-tests #425 - - static_CallRipemd160_4_gas719.json # ef-tests #425 - - static_CallRipemd160_5.json # ef-tests #425 - - static_CallSha256_1.json # ef-tests #425 - - static_CallSha256_2.json # ef-tests #425 - - static_CallSha256_3.json # ef-tests #425 - - static_CallSha256_3_postfix0.json # ef-tests #425 - - static_CallSha256_3_prefix0.json # ef-tests #425 - - static_CallSha256_4.json # ef-tests #425 - - static_CallSha256_4_gas99.json # ef-tests #425 - - static_CallSha256_5.json # ef-tests #425 - - static_callToDelCallOpCodeCheck.json # ef-tests #425 - - static_callToStaticOpCodeCheck.json # ef-tests #425 - - static_callWithHighValueOOGinCall.json # ef-tests #425 - - static_CALL_OneVCallSuicide.json # ef-tests #425 - - static_call_value_inherit_from_call.json # ef-tests #425 - - static_CheckOpcodes.json # ef-tests #425 - - static_CheckOpcodes2.json # ef-tests #425 - - static_CheckOpcodes3.json # ef-tests #425 - - static_CheckOpcodes4.json # ef-tests #425 - - static_CheckOpcodes5.json # ef-tests #425 - - static_log0_emptyMem.json # ef-tests #425 - - static_LoopCallsDepthThenRevert.json # ef-tests #425 - - static_LoopCallsThenRevert.json # ef-tests #425 - - static_PostToReturn1.json # ef-tests #425 - - static_RawCallGasAsk.json # ef-tests #425 - - static_refund_CallToSuicideNoStorage.json # ef-tests #425 - - static_Return50000_2.json # ef-tests #425 - - static_RETURN_Bounds.json # ef-tests #425 - - static_RevertDepth2.json # ef-tests #425 - - static_callcodecallcodecall_110_SuicideEnd.json # ef-tests #480 - - static_callcodecallcodecall_110_SuicideMiddle2.json # ef-tests #480 - - static_refund_CallToSuicideTwice.json # ef-tests #480 - - static_ABAcallsSuicide1.json # ef-tests #480 - - static_log0_nonEmptyMem_logMemSize1.json # ef-tests #480 - - static_log1_logMemsizeTooHigh.json # ef-tests #480 - - static_log1_MaxTopic.json # ef-tests #480 - - static_callcodecallcodecall_110_SuicideMiddle.json # ef-tests #480 - - static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturn.json # ef-tests #480 - - static_call_value_inherit.json # ef-tests #480 - - static_log1_logMemsizeZero.json # ef-tests #480 - - static_log0_nonEmptyMem.json # ef-tests #480 - - static_callcodecall_10_SuicideEnd.json # ef-tests #480 - - static_log0_logMemsizeTooHigh.json # ef-tests #480 - - static_log0_logMemsizeZero.json # ef-tests #480 - - static_refund_CallA.json # ef-tests #480 - - static_log0_logMemStartTooHigh.json # ef-tests #480 - - static_log1_emptyMem.json # ef-tests #480 - - static_log0_nonEmptyMem_logMemSize1_logMemStart31.json # ef-tests #480 - - static_callWithHighValueAndGasOOG.json # ef-tests #480 - - static_makeMoney.json # ef-tests #480 - - static_callcodecall_10_SuicideEnd2.json # ef-tests #480 - - static_CallToNameRegistrator0.json # ef-tests #480 - - static_callcodecallcodecall_110_SuicideEnd2.json # ef-tests #480 - - static_CREATE_ContractSuicideDuringInit_WithValue.json # ef-tests #480 - - static_InternlCallStoreClearsOOG.json # ef-tests #480 - - static_log1_logMemStartTooHigh.json # ef-tests #480 - - static_log_Caller.json # ef-tests #480 - - static_callcodecallcodecall_110_SuicideEnd.json # ef-tests #480 + - StaticcallToPrecompileFromContractInitialization # ef-tests #421 + - static_CallContractToCreateContractAndCallItOOG # ef-tests #421 + - static_CallContractToCreateContractOOG # ef-tests #421 + - static_CallContractToCreateContractOOGBonusGas # ef-tests #421 + - static_CallContractToCreateContractWhichWouldCreateContractIfCalled # ef-tests #421 + - static_callCreate2 # ef-tests #421 + - static_callCreate3 # ef-tests #421 + - static_CREATE_EmptyContractAndCallIt_0wei # ef-tests #421 + - static_CREATE_EmptyContractWithStorageAndCallIt_0wei # ef-tests #421 + - static_RETURN_BoundsOOG # ef-tests #421 + - static_contractCreationMakeCallThatAskMoreGasThenTransactionProvided # ef-tests #422 + - static_contractCreationOOGdontLeaveEmptyContractViaTransaction # ef-tests #422 + - static_CallSha256_1_nonzeroValue # ef-tests #423 + - static_CallIdentity_1_nonzeroValue # ef-tests #423 + - StaticcallToPrecompileFromCalledContract # ef-tests #424 + - StaticcallToPrecompileFromTransaction # ef-tests #424 + - static_ABAcalls0 # ef-tests #424 + - static_ABAcalls1 # ef-tests #424 + - static_ABAcalls2 # ef-tests #424 + - static_ABAcalls3 # ef-tests #424 + - static_ABAcallsSuicide0 # ef-tests #424 + - static_Call10 # ef-tests #424 + - static_Call1024BalanceTooLow # ef-tests #424 + - static_Call1024BalanceTooLow2 # ef-tests #424 + - static_Call1024OOG # ef-tests #424 + - static_Call1024PreCalls # ef-tests #424 + - static_Call1024PreCalls2 # ef-tests #424 + - static_Call1024PreCalls3 # ef-tests #424 + - static_Call1MB1024Calldepth # ef-tests #424 + - static_Call50000 # ef-tests #424 + - static_Call50000bytesContract50_1 # ef-tests #424 + - static_Call50000bytesContract50_2 # ef-tests #424 + - static_Call50000bytesContract50_3 # ef-tests #424 + - static_Call50000_ecrec # ef-tests #424 + - static_Call50000_identity # ef-tests #424 + - static_Call50000_identity2 # ef-tests #424 + - static_Call50000_rip160 # ef-tests #424 + - static_CallAskMoreGasOnDepth2ThenTransactionHas # ef-tests #424 + - static_callBasic # ef-tests #424 + - static_callcallcallcode_001 # ef-tests #424 + - static_callcallcallcode_001_2 # ef-tests #424 + - static_callcallcallcode_001_OOGE # ef-tests #424 + - static_callcallcallcode_001_OOGE_2 # ef-tests #424 + - static_callcallcallcode_001_OOGMAfter # ef-tests #424 + - static_callcallcallcode_001_OOGMAfter2 # ef-tests #424 + - static_callcallcallcode_001_OOGMAfter_2 # ef-tests #424 + - static_callcallcallcode_001_OOGMAfter_3 # ef-tests #424 + - static_callcallcallcode_001_OOGMBefore # ef-tests #424 + - static_callcallcallcode_001_OOGMBefore2 # ef-tests #424 + - static_callcallcallcode_001_SuicideEnd # ef-tests #424 + - static_callcallcallcode_001_SuicideEnd2 # ef-tests #424 + - static_callcallcallcode_001_SuicideMiddle # ef-tests #424 + - static_callcallcallcode_001_SuicideMiddle2 # ef-tests #424 + - static_callcallcall_000 # ef-tests #424 + - static_callcallcall_000_OOGE # ef-tests #424 + - static_callcallcall_000_OOGMAfter # ef-tests #424 + - static_callcallcall_000_OOGMAfter2 # ef-tests #424 + - static_callcallcall_000_OOGMBefore # ef-tests #424 + - static_callcallcall_000_SuicideEnd # ef-tests #424 + - static_callcallcall_000_SuicideMiddle # ef-tests #424 + - static_callcallcodecallcode_011 # ef-tests #424 + - static_callcallcodecallcode_011_2 # ef-tests #424 + - static_callcallcodecallcode_011_OOGE # ef-tests #424 + - static_callcallcodecallcode_011_OOGE_2 # ef-tests #424 + - static_callcallcodecallcode_011_OOGMAfter # ef-tests #424 + - static_callcallcodecallcode_011_OOGMAfter2 # ef-tests #424 + - static_callcallcodecallcode_011_OOGMAfter_1 # ef-tests #424 + - static_callcallcodecallcode_011_OOGMAfter_2 # ef-tests #424 + - static_callcallcodecallcode_011_OOGMBefore # ef-tests #424 + - static_callcallcodecallcode_011_OOGMBefore2 # ef-tests #424 + - static_callcallcodecallcode_011_SuicideEnd # ef-tests #424 + - static_callcallcodecallcode_011_SuicideEnd2 # ef-tests #424 + - static_callcallcodecallcode_011_SuicideMiddle # ef-tests #424 + - static_callcallcodecallcode_011_SuicideMiddle2 # ef-tests #424 + - static_callcallcodecallcode_ABCB_RECURSIVE # ef-tests #424 + - static_callcallcodecallcode_ABCB_RECURSIVE2 # ef-tests #424 + - static_callcallcodecall_010 # ef-tests #424 + - static_callcallcodecall_010_2 # ef-tests #424 + - static_callcallcodecall_010_OOGE # ef-tests #424 + - static_callcallcodecall_010_OOGE_2 # ef-tests #424 + - static_callcallcodecall_010_OOGMAfter # ef-tests #424 + - static_callcallcodecall_010_OOGMAfter2 # ef-tests #424 + - static_callcallcodecall_010_OOGMAfter_2 # ef-tests #424 + - static_callcallcodecall_010_OOGMAfter_3 # ef-tests #424 + - static_callcallcodecall_010_OOGMBefore # ef-tests #424 + - static_callcallcodecall_010_OOGMBefore2 # ef-tests #424 + - static_callcallcodecall_010_SuicideEnd # ef-tests #424 + - static_callcallcodecall_010_SuicideEnd2 # ef-tests #424 + - static_callcallcodecall_010_SuicideMiddle # ef-tests #424 + - static_callcallcodecall_010_SuicideMiddle2 # ef-tests #424 + - static_callcallcodecall_ABCB_RECURSIVE # ef-tests #424 + - static_callcallcodecall_ABCB_RECURSIVE2 # ef-tests #424 + - static_callcallcode_01_2 # ef-tests #424 + - static_callcallcode_01_OOGE_2 # ef-tests #424 + - static_callcallcode_01_SuicideEnd # ef-tests #424 + - static_callcallcode_01_SuicideEnd2 # ef-tests #424 + - static_callcall_00 # ef-tests #424 + - static_callcall_00_OOGE # ef-tests #424 + - static_callcall_00_OOGE_1 # ef-tests #424 + - static_callChangeRevert # ef-tests #424 + - static_callcodecallcallcode_101 # ef-tests #424 + - static_callcodecallcallcode_101_2 # ef-tests #424 + - static_callcodecallcallcode_101_OOGE # ef-tests #424 + - static_callcodecallcallcode_101_OOGE_2 # ef-tests #424 + - static_callcodecallcallcode_101_OOGMAfter # ef-tests #424 + - static_callcodecallcallcode_101_OOGMAfter2 # ef-tests #424 + - static_callcodecallcallcode_101_OOGMAfter_1 # ef-tests #424 + - static_callcodecallcallcode_101_OOGMAfter_3 # ef-tests #424 + - static_callcodecallcallcode_101_OOGMBefore # ef-tests #424 + - static_callcodecallcallcode_101_OOGMBefore2 # ef-tests #424 + - static_callcodecallcallcode_101_SuicideEnd # ef-tests #424 + - static_callcodecallcallcode_101_SuicideEnd2 # ef-tests #424 + - static_callcodecallcallcode_101_SuicideMiddle # ef-tests #424 + - static_callcodecallcallcode_101_SuicideMiddle2 # ef-tests #424 + - static_callcodecallcallcode_ABCB_RECURSIVE # ef-tests #424 + - static_callcodecallcallcode_ABCB_RECURSIVE2 # ef-tests #424 + - static_callcodecallcall_100 # ef-tests #424 + - static_callcodecallcall_100_2 # ef-tests #424 + - static_callcodecallcall_100_OOGE # ef-tests #425 + - static_callcodecallcall_100_OOGE2 # ef-tests #425 + - static_callcodecallcall_100_OOGMAfter # ef-tests #425 + - static_callcodecallcall_100_OOGMAfter2 # ef-tests #425 + - static_callcodecallcall_100_OOGMAfter_2 # ef-tests #425 + - static_callcodecallcall_100_OOGMAfter_3 # ef-tests #425 + - static_callcodecallcall_100_OOGMBefore # ef-tests #425 + - static_callcodecallcall_100_OOGMBefore2 # ef-tests #425 + - static_callcodecallcall_100_SuicideEnd # ef-tests #425 + - static_callcodecallcall_100_SuicideEnd2 # ef-tests #425 + - static_callcodecallcall_100_SuicideMiddle # ef-tests #425 + - static_callcodecallcall_100_SuicideMiddle2 # ef-tests #425 + - static_callcodecallcall_ABCB_RECURSIVE # ef-tests #425 + - static_callcodecallcall_ABCB_RECURSIVE2 # ef-tests #425 + - static_callcodecallcodecallcode_111_SuicideEnd # ef-tests #425 + - static_callcodecallcodecall_110 # ef-tests #425 + - static_callcodecallcodecall_1102 # ef-tests #425 + - static_callcodecallcodecall_110_2 # ef-tests #425 + - static_callcodecallcodecall_110_OOGE # ef-tests #425 + - static_callcodecallcodecall_110_OOGE2 # ef-tests #425 + - static_callcodecallcodecall_110_OOGMAfter # ef-tests #425 + - static_callcodecallcodecall_110_OOGMAfter2 # ef-tests #425 + - static_callcodecallcodecall_110_OOGMAfter_2 # ef-tests #425 + - static_callcodecallcodecall_110_OOGMAfter_3 # ef-tests #425 + - static_callcodecallcodecall_110_OOGMBefore # ef-tests #425 + - static_callcodecallcodecall_110_OOGMBefore2 # ef-tests #425 + - static_callcodecallcodecall_ABCB_RECURSIVE # ef-tests #425 + - static_callcodecallcodecall_ABCB_RECURSIVE2 # ef-tests #425 + - static_callcodecall_10 # ef-tests #425 + - static_callcodecall_10_2 # ef-tests #425 + - static_callcodecall_10_OOGE # ef-tests #425 + - static_callcodecall_10_OOGE_2 # ef-tests #425 + - static_callcode_checkPC # ef-tests #425 + - static_callCreate # ef-tests #425 + - static_calldelcode_01 # ef-tests #425 + - static_calldelcode_01_OOGE # ef-tests #425 + - static_CallEcrecover0_0input # ef-tests #425 + - static_CallEcrecover1 # ef-tests #425 + - static_CallEcrecover2 # ef-tests #425 + - static_CallEcrecover80 # ef-tests #425 + - static_CallEcrecoverCheckLengthWrongV # ef-tests #425 + - static_CallEcrecoverR_prefixed0 # ef-tests #425 + - static_CallIdentitiy_1 # ef-tests #425 + - static_CallIdentity_5 # ef-tests #425 + - static_CallLoseGasOOG # ef-tests #425 + - static_callOutput1 # ef-tests #425 + - static_callOutput2 # ef-tests #425 + - static_callOutput3 # ef-tests #425 + - static_callOutput3Fail # ef-tests #425 + - static_callOutput3partial # ef-tests #425 + - static_callOutput3partialFail # ef-tests #425 + - static_CallRecursiveBomb0 # ef-tests #425 + - static_CallRecursiveBomb0_OOG_atMaxCallDepth # ef-tests #425 + - static_CallRecursiveBomb1 # ef-tests #425 + - static_CallRecursiveBomb2 # ef-tests #425 + - static_CallRecursiveBomb3 # ef-tests #425 + - static_CallRecursiveBombLog # ef-tests #425 + - static_CallRecursiveBombLog2 # ef-tests #425 + - static_CallRecursiveBombPreCall # ef-tests #425 + - static_CallRecursiveBombPreCall2 # ef-tests #425 + - static_CallRipemd160_4_gas719 # ef-tests #425 + - static_CallRipemd160_5 # ef-tests #425 + - static_CallSha256_1 # ef-tests #425 + - static_CallSha256_2 # ef-tests #425 + - static_CallSha256_3 # ef-tests #425 + - static_CallSha256_3_postfix0 # ef-tests #425 + - static_CallSha256_3_prefix0 # ef-tests #425 + - static_CallSha256_4 # ef-tests #425 + - static_CallSha256_4_gas99 # ef-tests #425 + - static_CallSha256_5 # ef-tests #425 + - static_callToDelCallOpCodeCheck # ef-tests #425 + - static_callToStaticOpCodeCheck # ef-tests #425 + - static_callWithHighValueOOGinCall # ef-tests #425 + - static_CALL_OneVCallSuicide # ef-tests #425 + - static_call_value_inherit_from_call # ef-tests #425 + - static_CheckOpcodes # ef-tests #425 + - static_CheckOpcodes2 # ef-tests #425 + - static_CheckOpcodes3 # ef-tests #425 + - static_CheckOpcodes4 # ef-tests #425 + - static_CheckOpcodes5 # ef-tests #425 + - static_log0_emptyMem # ef-tests #425 + - static_LoopCallsDepthThenRevert # ef-tests #425 + - static_LoopCallsThenRevert # ef-tests #425 + - static_PostToReturn1 # ef-tests #425 + - static_RawCallGasAsk # ef-tests #425 + - static_refund_CallToSuicideNoStorage # ef-tests #425 + - static_Return50000_2 # ef-tests #425 + - static_RETURN_Bounds # ef-tests #425 + - static_RevertDepth2 # ef-tests #425 + - static_callcodecallcodecall_110_SuicideEnd # ef-tests #480 + - static_callcodecallcodecall_110_SuicideMiddle2 # ef-tests #480 + - static_refund_CallToSuicideTwice # ef-tests #480 + - static_ABAcallsSuicide1 # ef-tests #480 + - static_log0_nonEmptyMem_logMemSize1 # ef-tests #480 + - static_log1_logMemsizeTooHigh # ef-tests #480 + - static_log1_MaxTopic # ef-tests #480 + - static_callcodecallcodecall_110_SuicideMiddle # ef-tests #480 + - static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturn # ef-tests #480 + - static_call_value_inherit # ef-tests #480 + - static_log1_logMemsizeZero # ef-tests #480 + - static_log0_nonEmptyMem # ef-tests #480 + - static_callcodecall_10_SuicideEnd # ef-tests #480 + - static_log0_logMemsizeTooHigh # ef-tests #480 + - static_log0_logMemsizeZero # ef-tests #480 + - static_refund_CallA # ef-tests #480 + - static_log0_logMemStartTooHigh # ef-tests #480 + - static_log1_emptyMem # ef-tests #480 + - static_log0_nonEmptyMem_logMemSize1_logMemStart31 # ef-tests #480 + - static_callWithHighValueAndGasOOG # ef-tests #480 + - static_makeMoney # ef-tests #480 + - static_callcodecall_10_SuicideEnd2 # ef-tests #480 + - static_CallToNameRegistrator0 # ef-tests #480 + - static_callcodecallcodecall_110_SuicideEnd2 # ef-tests #480 + - static_CREATE_ContractSuicideDuringInit_WithValue # ef-tests #480 + - static_InternlCallStoreClearsOOG # ef-tests #480 + - static_log1_logMemStartTooHigh # ef-tests #480 + - static_log_Caller # ef-tests #480 + - static_callcodecallcodecall_110_SuicideEnd # ef-tests #480 stStackTests: - - underflowTest.json # ef-tests #414 - - shallowStack.json # ef-tests #415 - - stackOverflowM1.json # ef-tests #415 - - stackOverflowM1DUP.json # ef-tests #415 - - stackOverflowM1PUSH.json # ef-tests #415 - - stackOverflowSWAP.json # ef-tests #415 - - stacksanitySWAP.json # ef-tests #415 + - underflowTest # ef-tests #414 + - shallowStack # ef-tests #415 + - stackOverflowM1 # ef-tests #415 + - stackOverflowM1DUP # ef-tests #415 + - stackOverflowM1PUSH # ef-tests #415 + - stackOverflowSWAP # ef-tests #415 + - stacksanitySWAP # ef-tests #415 stArgsZeroOneBalance: - - callcodeNonConst.json # ef-tests #370 - - callNonConst.json # ef-tests #371 - - createNonConst.json # ef-tests #368 - - delegatecallNonConst.json # ef-tests #370 - - jumpiNonConst.json # ef-tests #538 - - jumpNonConst.json # ef-tests #538 - - mulmodNonConst.json # ef-tests #368 - - suicideNonConst.json # ef-tests #370 + - callcodeNonConst # ef-tests #370 + - callNonConst # ef-tests #371 + - createNonConst # ef-tests #368 + - delegatecallNonConst # ef-tests #370 + - jumpiNonConst # ef-tests #538 + - jumpNonConst # ef-tests #538 + - mulmodNonConst # ef-tests #368 + - suicideNonConst # ef-tests #370 stTransitionTest: - - delegatecallAtTransition.json # ef-test #433 - - delegatecallAfterTransition.json # ef-test #433 - - delegatecallBeforeTransition.json # ef-test #433 + - delegatecallAtTransition # ef-test #433 + - delegatecallAfterTransition # ef-test #433 + - delegatecallBeforeTransition # ef-test #433 stTimeConsuming: - - CALLBlake2f_MaxRounds.json # ef-test #440 - - sstore_combinations_initial00.json # ef-test #440 - - sstore_combinations_initial00_2.json # ef-test #440 - - sstore_combinations_initial01.json # ef-test #440 - - sstore_combinations_initial01_2.json # ef-test #440 - - sstore_combinations_initial10.json # ef-test #440 - - sstore_combinations_initial10_2.json # ef-test #440 - - sstore_combinations_initial11.json # ef-test #440 - - sstore_combinations_initial11_2.json # ef-test #440 - - sstore_combinations_initial20.json # ef-test #440 - - sstore_combinations_initial20_2.json # ef-test #440 - - sstore_combinations_initial21.json # ef-test #440 - - sstore_combinations_initial21_2.json # ef-test #440 - - static_Call50000_sha256.json # ef-test #440 + - CALLBlake2f_MaxRounds # ef-test #440 + - sstore_combinations_initial00 # ef-test #440 + - sstore_combinations_initial00_2 # ef-test #440 + - sstore_combinations_initial01 # ef-test #440 + - sstore_combinations_initial01_2 # ef-test #440 + - sstore_combinations_initial10 # ef-test #440 + - sstore_combinations_initial10_2 # ef-test #440 + - sstore_combinations_initial11 # ef-test #440 + - sstore_combinations_initial11_2 # ef-test #440 + - sstore_combinations_initial20 # ef-test #440 + - sstore_combinations_initial20_2 # ef-test #440 + - sstore_combinations_initial21 # ef-test #440 + - sstore_combinations_initial21_2 # ef-test #440 + - static_Call50000_sha256 # ef-test #440 stTransactionTest: - - CreateMessageSuccess.json # ef-test #508 - - SuicidesAndInternlCallSuicidesBonusGasAtCallFailed.json # ef-test #506 - - OverflowGasRequire2.json # ef-test #506 - - ContractStoreClearsOOG.json # ef-test #507 - - InternlCallStoreClearsOOG.json # ef-test #507 - - SuicidesAndInternlCallSuicidesBonusGasAtCall.json # ef-test #506 - - InternalCallHittingGasLimit2.json # ef-test #506 - - StoreClearsAndInternlCallStoreClearsOOG.json # ef-test #507 - - StoreGasOnCreate.json # ef-test #508 - - Opcodes_TransactionInit.json # ef-test #508 - - HighGasPrice.json # ef-test #509 - - ValueOverflow.json # ef-test #509 - - SuicidesAndInternlCallSuicidesSuccess.json # ef-test #506 - - PointAtInfinityECRecover.json # ef-test #507 - - SuicidesStopAfterSuicide.json # ef-test #506 - - TransactionSendingToZero.json # ef-test #506 + - CreateMessageSuccess # ef-test #508 + - SuicidesAndInternlCallSuicidesBonusGasAtCallFailed # ef-test #506 + - OverflowGasRequire2 # ef-test #506 + - ContractStoreClearsOOG # ef-test #507 + - InternlCallStoreClearsOOG # ef-test #507 + - SuicidesAndInternlCallSuicidesBonusGasAtCall # ef-test #506 + - InternalCallHittingGasLimit2 # ef-test #506 + - StoreClearsAndInternlCallStoreClearsOOG # ef-test #507 + - StoreGasOnCreate # ef-test #508 + - Opcodes_TransactionInit # ef-test #508 + - HighGasPrice # ef-test #509 + - ValueOverflow # ef-test #509 + - SuicidesAndInternlCallSuicidesSuccess # ef-test #506 + - PointAtInfinityECRecover # ef-test #507 + - SuicidesStopAfterSuicide # ef-test #506 + - TransactionSendingToZero # ef-test #506 # List of file names regex to be skipped # The first level corresponds to the directory, the second to the list of file names regex to ignore. regex: stBadOpcode: - - ^opc.*\.json$ # ef-test #120 + - ^opc.* # ef-test #120 diff --git a/crates/ef-testing-proc-macros/Cargo.toml b/crates/ef-testing-proc-macros/Cargo.toml new file mode 100644 index 00000000..a92a4e51 --- /dev/null +++ b/crates/ef-testing-proc-macros/Cargo.toml @@ -0,0 +1,27 @@ +[package] +name = "ef-testing-proc-macros" +version.workspace = true +edition.workspace = true +authors.workspace = true +description.workspace = true +homepage.workspace = true +repository.workspace = true +readme.workspace = true +license.workspace = true + +[lib] +proc-macro = true + +[dependencies] +# Others +eyre = { workspace = true } +lazy_static = { workspace = true } +proc-macro2 = { workspace = true } +quote = { workspace = true } +rayon = { workspace = true } +regex = { workspace = true } +serde = { workspace = true } +serde_json = { workspace = true } +serde_yaml = { workspace = true } +syn = { workspace = true } +walkdir = { workspace = true } diff --git a/crates/ef-testing-proc-macros/src/constants.rs b/crates/ef-testing-proc-macros/src/constants.rs new file mode 100644 index 00000000..dd25652d --- /dev/null +++ b/crates/ef-testing-proc-macros/src/constants.rs @@ -0,0 +1,7 @@ +lazy_static::lazy_static! { + pub(crate) static ref UNSUPPORTED_IDENTIFIER_CHAR: regex::Regex = regex::Regex::new(r"[=^.]").unwrap(); +} + +pub(crate) const SKIPPED_TESTS: &str = include_str!("../../../blockchain-tests-skip.yml"); +pub(crate) const ROOT: &str = "GeneralStateTests"; +pub(crate) const FORK: &str = "Shanghai"; diff --git a/crates/ef-testing-proc-macros/src/content_reader.rs b/crates/ef-testing-proc-macros/src/content_reader.rs new file mode 100644 index 00000000..934d0151 --- /dev/null +++ b/crates/ef-testing-proc-macros/src/content_reader.rs @@ -0,0 +1,79 @@ +use std::collections::BTreeMap; + +use serde_json::Value; + +use crate::{path::PathWrapper, utils::blockchain_tests_to_general_state_tests_path}; + +/// The ContentReader is used to read the content of the ef-test tests files. +/// The tests files are located in the BlockchainTests folder and contain +/// the target block, the pre state, the transaction and the post state. +/// +/// The tests are doubled and located in the GeneralStateTests folder, but +/// in a lighter version. The secret key for the transaction is only located +/// in the GeneralStateTests folder. +pub struct ContentReader; + +impl ContentReader { + /// Reads the secret key from the given path for the GeneralStateTests. + /// All tests are taken from the BlockchainTests folder, + /// but the secret key is taken from the GeneralStateTests folder. + /// + /// # Example + /// + /// Test location: BlockchainTests/GeneralStateTests/stRandom/randomStatetest0.json + /// Secret key location: GeneralStateTests/stRandom/randomStatetest0.json + pub fn secret_key(path: PathWrapper) -> Result { + let path = blockchain_tests_to_general_state_tests_path(path); + let content = path.read_file_to_string()?; + + let cases: BTreeMap = serde_json::from_str(&content)?; + let case = cases + .into_values() + .next() + .ok_or_else(|| eyre::eyre!("No case found"))? + .clone(); + + Ok(case + .get("transaction") + .ok_or_else(|| eyre::eyre!("No transaction found"))? + .get("secretKey") + .ok_or_else(|| eyre::eyre!("No secret key found"))? + .clone()) + } + + pub fn pre_state(test_case: &Value) -> Result { + Ok(serde_json::from_value( + test_case + .get("pre") + .ok_or_else(|| eyre::eyre!("No pre state found"))? + .clone(), + )?) + } + + pub fn post_state(test_case: &Value) -> Result { + Ok(test_case + .get("postState") + .ok_or_else(|| eyre::eyre!("No post state found"))? + .clone()) + } + + pub fn block(test_case: &Value) -> Result { + // Attempt to get the "blocks" value + let blocks = test_case + .get("blocks") + .ok_or_else(|| eyre::eyre!("Key 'blocks' not found"))?; + + // Ensure it's an array + let blocks_array = blocks + .as_array() + .ok_or_else(|| eyre::eyre!("'blocks' is not an array"))?; + + // Get the first block + let first_block = blocks_array + .first() + .ok_or_else(|| eyre::eyre!("'blocks' array is empty"))?; + + // Return a clone of the block + Ok(first_block.clone()) + } +} diff --git a/crates/ef-testing-proc-macros/src/converter.rs b/crates/ef-testing-proc-macros/src/converter.rs new file mode 100644 index 00000000..8fd809af --- /dev/null +++ b/crates/ef-testing-proc-macros/src/converter.rs @@ -0,0 +1,174 @@ +use std::collections::BTreeMap; + +use rayon::prelude::*; +use serde_json::Value; + +use crate::{ + constants::{FORK, UNSUPPORTED_IDENTIFIER_CHAR}, + content_reader::ContentReader, + dir_reader::DirReader, + path::PathWrapper, +}; + +/// The TestConverter is used to convert the directory structure +/// into a String containing all the rust tests to be ran. +/// +/// # Example +/// +/// Test location: BlockchainTests/GeneralStateTests/stRandom/ +/// List of tests: [randomStatetest0.json, randomStatetest1.json, ...] +/// Inner tests: [randomStatetest0_d0g0v0_Shanghai, randomStatetest0_d1g0v0_Shanghai, +/// ..., randomStatetest1_d0g0v0_Shanghai, randomStatetest1_d1g0v0_Shanghai, ...] +/// Generated String: +/// r#" +/// mod randomStatetest0 { +/// use super::*; +/// #[test] +/// fn test_randomStatetest0_d0g0v0_Shanghai() { +/// ... +/// } +/// #[test] +/// fn test_randomStatetest0_d1g0v0_Shanghai() { +/// ... +/// } +/// #[test] +/// fn test_randomStatetest1_d0g0v0_Shanghai() { +/// ... +/// } +/// #[test] +/// fn test_randomStatetest1_d1g0v0_Shanghai() { +/// ... +/// } +/// ... +/// } +/// "# +pub struct TestConverter { + directory: DirReader, +} + +impl TestConverter { + pub fn new(directory: DirReader) -> Self { + Self { directory } + } + + /// Converts the given directory into a String containing all + /// the rust tests to be ran. + pub fn convert(&self) -> Result { + self.directory + .sub_dirs + .par_iter() + .fold( + || Ok(String::new()), + |acc, (folder_name, node)| { + let mut s = String::new(); + s += &Self::format_to_module(folder_name); + s += &Self::convert_folders(node)?; + s += "}"; + Ok(acc? + &s) + }, + ) + .collect() + } + + /// Converts the given directory into a String. + fn convert_folders(node: &DirReader) -> Result { + let mut acc = String::new(); + for (dir_name, sub_node) in &node.sub_dirs { + acc += &TestConverter::format_to_module(dir_name); + acc += &Self::convert_folders(sub_node)?; + acc += "}"; + } + Ok(acc + &Self::convert_files(&node.files)?) + } + + #[allow(clippy::manual_try_fold)] + /// Converts the given files into a String. + fn convert_files(files: &[(PathWrapper, bool)]) -> Result { + let mut acc = String::new(); + for (file_path, is_skipped) in files { + let content = file_path.read_file_to_string()?; + let cases: BTreeMap = serde_json::from_str(&content)?; + acc += &cases.into_iter().fold( + Ok(String::new()), + |acc: Result, (case_name, content)| { + if !case_name.contains(FORK) { + return acc; + } + let secret_key = ContentReader::secret_key(file_path.clone())?; + Ok(acc? + + &TestConverter::format_to_test( + &case_name, + secret_key, + content, + *is_skipped, + )?) + }, + )? + } + Ok(acc) + } + + /// Formats the given folder name into a rust module. + fn format_to_module(folder_name: &str) -> String { + format!( + r#"mod {} {{ + use super::*; + "#, + TestConverter::format_into_identifier(folder_name) + ) + } + + /// Formats the given test case into a rust test. + fn format_to_test( + case_name: &str, + secret_key: Value, + content: Value, + is_skipped: bool, + ) -> Result { + Ok(format!( + r#" + #[test] + {} + fn test_{}() {{ + {} + }}"#, + if is_skipped { "#[ignore]" } else { "" }, + TestConverter::format_into_identifier(case_name), + Self::format_test_content(case_name, secret_key, &content, is_skipped)?, + )) + } + + /// Formats the given test content into a rust test. + fn format_test_content( + case_name: &str, + secret_key: Value, + content: &Value, + is_skipped: bool, + ) -> Result { + if is_skipped { + return Ok(String::default()); + } + let block = ContentReader::block(content)?; + let pre = ContentReader::pre_state(content)?; + let post = ContentReader::post_state(content)?; + Ok(format!( + r##" + setup(); + let block: Block = serde_json::from_str(r#"{}"#).expect("Error while reading the block"); + let pre: State = serde_json::from_str(r#"{}"#).expect("Error while reading the pre state"); + let post: RootOrState = serde_json::from_str(r#"{}"#).expect("Error while reading the post state"); + let case = BlockchainTestCase::new("{}".to_string(), block, pre, post, B256::from_str({}).expect("Error while reading secret key")); + case.run().expect("Error while running the test"); + "##, + block, pre, post, case_name, secret_key + )) + } + + /// Formats the given string into a valid rust identifier. + fn format_into_identifier(s: &str) -> String { + UNSUPPORTED_IDENTIFIER_CHAR + .replace_all(s, "_") + .replace('-', "_minus_") + .replace('+', "_plus_") + } +} diff --git a/crates/ef-testing-proc-macros/src/dir_reader.rs b/crates/ef-testing-proc-macros/src/dir_reader.rs new file mode 100644 index 00000000..ae51f862 --- /dev/null +++ b/crates/ef-testing-proc-macros/src/dir_reader.rs @@ -0,0 +1,69 @@ +use std::collections::BTreeMap; +use std::path::PathBuf; +use std::sync::Arc; + +use walkdir::WalkDir; + +use crate::constants::ROOT; +use crate::constants::SKIPPED_TESTS; +use crate::filter::Filter; +use crate::path::PathWrapper; +use crate::utils::path_relative_to; +use crate::utils::path_to_vec_string; + +/// The DirReader will iterate all folders and +/// files in the given directory and stores them +/// by using a recursive structure (structure that +/// contains itself). +pub struct DirReader { + /// Mapping containing the sub directories + pub(crate) sub_dirs: BTreeMap, + /// Vector containing the files and wether they should be skipped + pub(crate) files: Vec<(PathWrapper, bool)>, + /// Filter to be applied on the files + filter: Arc, +} + +impl DirReader { + pub fn new() -> Self { + Self { + sub_dirs: BTreeMap::default(), + files: Vec::default(), + filter: Arc::new(Filter::new(SKIPPED_TESTS.to_string())), + } + } + + /// Walks the given directory and stores all files + pub fn walk_dir_and_store_files( + mut self, + directory_path: PathWrapper, + ) -> Result { + for entry in WalkDir::new(Into::::into(directory_path)) + .into_iter() + .filter_map(Result::ok) + .filter(|f| f.file_type().is_file()) + { + let full_path = entry.path(); + let path = path_to_vec_string(full_path)?; + self.insert_file(path_relative_to(path, ROOT), full_path.to_path_buf().into()); + } + Ok(self) + } + + /// Inserts a file into the DirReader by recursively navigating the file's + /// path and inserting the file into the correct sub directory. + fn insert_file(&mut self, current_path: Vec, full_path: PathWrapper) { + if current_path.len() > 1 { + let root_name = current_path.first().cloned().unwrap(); // safe unwrap + let sub_node = self.sub_dirs.entry(root_name).or_insert_with(|| DirReader { + sub_dirs: BTreeMap::default(), + files: Vec::default(), + filter: self.filter.clone(), + }); + sub_node.insert_file(current_path.into_iter().skip(1).collect(), full_path); + } else { + let skip = self.filter.is_skipped(&full_path); + self.files.push((full_path, skip)); + } + } +} diff --git a/crates/ef-testing-proc-macros/src/filter.rs b/crates/ef-testing-proc-macros/src/filter.rs new file mode 100644 index 00000000..7f0c7780 --- /dev/null +++ b/crates/ef-testing-proc-macros/src/filter.rs @@ -0,0 +1,69 @@ +use regex::Regex; +use serde::Deserialize; +use std::collections::BTreeMap; + +use crate::path::PathWrapper; + +/// Filter to be applied on the tests files +#[derive(Deserialize)] +pub struct Filter { + /// Mapping containing the directories and the files that should be skipped + filename: BTreeMap>, + /// Mapping containing the directories and the regex patterns that should be skipped + regex: BTreeMap>, +} + +impl Filter { + pub fn new(filter: String) -> Self { + serde_yaml::from_str(&filter).expect("Error while deserializing into Filter struct") + } + + /// Checks if the given path should be skipped + pub fn is_skipped(&self, path: &PathWrapper) -> bool { + let dir_name = path.parent().file_stem_to_string(); + let file_name = path.file_stem_to_string(); + + let mut should_skip = if self.filename.contains_key(&dir_name) { + self.filename + .get(&dir_name) + .unwrap() // safe unwrap + .iter() + .any(|filename| filename == &file_name) + } else { + false + }; + + if !should_skip && self.regex.contains_key(&dir_name) { + should_skip = self.regex.get(&dir_name).unwrap().iter().any(|regex| { + Regex::new(regex.as_str()) + .expect("Error with regex pattern") + .is_match(&file_name) + }); + } + should_skip + } +} + +#[cfg(test)] +mod tests { + use super::*; + use std::path::Path; + + #[test] + fn test_filter_file() { + let filter = Filter::new(include_str!("../../../blockchain-tests-skip.yml").to_string()); + let path = PathWrapper::from(Path::new( + "../../ef-testing/ethereum-tests/BlockchainTests/GeneralStateTests/stCallCreateCallCodeTest/Call1024PreCalls.json", + ).to_path_buf()); + assert!(filter.is_skipped(&path)); + } + + #[test] + fn test_filter_regex() { + let filter = Filter::new(include_str!("../../../blockchain-tests-skip.yml").to_string()); + let path = PathWrapper::from(Path::new( + "../../ef-testing/ethereum-tests/BlockchainTests/GeneralStateTests/stBadOpcode/opc4DDiffPlaces.json", + ).to_path_buf()); + assert!(filter.is_skipped(&path)); + } +} diff --git a/crates/ef-testing-proc-macros/src/lib.rs b/crates/ef-testing-proc-macros/src/lib.rs new file mode 100644 index 00000000..56b7fa11 --- /dev/null +++ b/crates/ef-testing-proc-macros/src/lib.rs @@ -0,0 +1,43 @@ +//! Procedural macros. +// mod blockchain_data_reader; +mod constants; +mod content_reader; +mod converter; +mod dir_reader; +mod filter; +mod path; +mod utils; + +use proc_macro::TokenStream; +use proc_macro2::TokenStream as TokenStream2; +use quote::quote; +use std::path::PathBuf; + +use crate::{converter::TestConverter, dir_reader::DirReader}; + +#[proc_macro] +pub fn generate_blockchain_tests(_input: TokenStream) -> TokenStream { + read_tests_to_stream().into() +} + +fn read_tests_to_stream() -> TokenStream2 { + let root_node = DirReader::new(); + let suite_path: PathBuf = PathBuf::from(env!("CARGO_MANIFEST_DIR")) + .join("../ef-testing/ethereum-tests/BlockchainTests/GeneralStateTests"); + let root_node = root_node + .walk_dir_and_store_files(suite_path.into()) + .expect("Error while walking directory"); + + // First level should only contain folders + assert!(root_node.files.is_empty()); + + let converter = TestConverter::new(root_node); + let tests = converter + .convert() + .expect("Error while converting the tests"); + + let tests = syn::parse_str::(&tests).expect("Error while parsing the test"); + quote! { + #tests + } +} diff --git a/crates/ef-testing-proc-macros/src/path.rs b/crates/ef-testing-proc-macros/src/path.rs new file mode 100644 index 00000000..07e028e6 --- /dev/null +++ b/crates/ef-testing-proc-macros/src/path.rs @@ -0,0 +1,41 @@ +use std::{io::Read, path::PathBuf}; + +#[derive(Clone, Debug, Default)] +pub struct PathWrapper(PathBuf); + +impl From for PathWrapper { + fn from(path: PathBuf) -> Self { + Self(path) + } +} + +impl From for PathBuf { + fn from(path: PathWrapper) -> Self { + path.0 + } +} + +impl PathWrapper { + pub fn read_file_to_string(&self) -> std::io::Result { + let mut content = String::new(); + std::fs::File::open(&self.0)?.read_to_string(&mut content)?; + Ok(content) + } + + pub fn parent(&self) -> Self { + Self( + self.0 + .parent() + .expect("Error getting path's parent") + .to_path_buf(), + ) + } + + pub fn file_stem_to_string(&self) -> String { + self.0 + .file_stem() + .expect("Error getting path's file name") + .to_string_lossy() + .to_string() + } +} diff --git a/crates/ef-testing-proc-macros/src/utils.rs b/crates/ef-testing-proc-macros/src/utils.rs new file mode 100644 index 00000000..ffe9f18c --- /dev/null +++ b/crates/ef-testing-proc-macros/src/utils.rs @@ -0,0 +1,37 @@ +use std::path::{Path, PathBuf}; + +use crate::path::PathWrapper; + +/// Converts the path to a string and removes the "BlockchainTests" folder +/// +/// # Example +/// +/// Input: BlockchainTests/GeneralStateTests/stCallCreateCallCodeTest/Call1024PreCalls.json +/// Output: GeneralStateTests/stCallCreateCallCodeTest/Call1024PreCalls.json +pub(crate) fn blockchain_tests_to_general_state_tests_path(path: PathWrapper) -> PathWrapper { + Into::::into(path) + .components() + .filter(|x| !x.as_os_str().eq_ignore_ascii_case("BlockchainTests")) + .collect::() + .into() +} + +/// Converts the path to a Vector of Strings +pub(crate) fn path_to_vec_string(path: &Path) -> Result, eyre::Error> { + path.iter() + .map(|os_str| { + Ok(os_str + .to_str() + .ok_or_else(|| eyre::eyre!("Error while converting the path to a string"))? + .to_string()) + }) + .collect() +} + +/// Returns the path relative to the given folder +pub(crate) fn path_relative_to(path: Vec, folder: &str) -> Vec { + path.into_iter() + .skip_while(|x| x != folder) + .skip(1) + .collect() +} diff --git a/crates/ef-testing/Cargo.toml b/crates/ef-testing/Cargo.toml index e79b4356..e89e4f2a 100644 --- a/crates/ef-testing/Cargo.toml +++ b/crates/ef-testing/Cargo.toml @@ -6,8 +6,6 @@ license.workspace = true homepage.workspace = true repository.workspace = true -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - [dependencies] bytes = { workspace = true } @@ -40,10 +38,8 @@ eyre = { workspace = true } lazy_static = { workspace = true } regex = { workspace = true } reqwest = { workspace = true, optional = true } -rstest = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } -serde_yaml = { workspace = true } thiserror = { workspace = true } tokio = { workspace = true } tracing = { workspace = true } @@ -52,3 +48,4 @@ zip = { workspace = true, optional = true } [dev-dependencies] tracing-subscriber = { workspace = true } +ef-testing-proc-macros = { path = "../ef-testing-proc-macros" } diff --git a/crates/ef-testing/src/models/case.rs b/crates/ef-testing/src/models/case.rs index 7fcd8213..1a46930a 100644 --- a/crates/ef-testing/src/models/case.rs +++ b/crates/ef-testing/src/models/case.rs @@ -1,6 +1,6 @@ // Inspired by https://github.com/paradigmxyz/reth/tree/main/testing/ef-tests -use super::{error::RunnerError, result::CaseResult, BlockchainTestTransaction}; +use super::error::RunnerError; use crate::{ evm_sequencer::{ constants::CHAIN_ID, evm_state::EvmState, utils::to_broadcasted_starknet_transaction, @@ -8,102 +8,50 @@ use crate::{ }, get_signed_rlp_encoded_transaction, traits::Case, - utils::{deserialize_into, load_file, update_post_state}, + utils::update_post_state, }; use async_trait::async_trait; -use ef_tests::models::BlockchainTest; -use ef_tests::models::{ForkSpec, RootOrState}; +use ef_tests::models::Block; +use ef_tests::models::{RootOrState, State}; use ethers_signers::{LocalWallet, Signer}; -use regex::Regex; +use revm_primitives::B256; use sequencer::{ execution::Execution, state::State as SequencerState, transaction::StarknetTransaction, }; -use serde::Deserialize; use starknet::core::types::{BroadcastedTransaction, FieldElement}; -use std::{ - collections::BTreeMap, - path::{Path, PathBuf}, -}; #[derive(Debug)] pub struct BlockchainTestCase { - pub name: String, - pub tests: BTreeMap, - pub transaction: BlockchainTestTransaction, -} - -#[derive(Deserialize)] -pub struct BlockchainTestsSkip { - pub filename: BTreeMap>, - pub regex: BTreeMap>, -} - -lazy_static::lazy_static! { - pub static ref SKIP: BlockchainTestsSkip = { - let skip_file = Path::new("../../blockchain-tests-skip.yml"); - let skip_str = load_file(skip_file).unwrap(); - - serde_yaml::from_str(&skip_str).unwrap() - }; + case_name: String, + block: Block, + pre: State, + post: RootOrState, + secret_key: B256, } // Division of logic: // 'handle' methods attempt to abstract the data coming from BlockChainTestCase // from more general logic that can be used across tests impl BlockchainTestCase { - /// Returns whether a given test should be skipped - /// # Panics - /// - /// Will panic if the file name cannot be stringified. - #[must_use] - pub fn should_skip(path: &Path) -> bool { - let dir = path - .parent() - .unwrap() - .file_name() - .unwrap() - .to_str() - .unwrap(); - let name = path.file_name().unwrap().to_str().unwrap(); - - let mut should_skip = if SKIP.filename.contains_key(dir) { - SKIP.filename - .get(dir) - .unwrap() - .iter() - .any(|filename| filename == name) - } else { - false - }; - - if !should_skip && SKIP.regex.contains_key(dir) { - should_skip = SKIP - .regex - .get(dir) - .unwrap() - .iter() - .any(|regex| Regex::new(regex.as_str()).unwrap().is_match(name)); + pub fn new( + case_name: String, + block: Block, + pre: State, + post: RootOrState, + secret_key: B256, + ) -> Self { + Self { + case_name, + block, + pre, + post, + secret_key, } - - should_skip } - fn test(&self, test_name: &str) -> Result<&BlockchainTest, RunnerError> { - let test = self.tests.get(test_name).ok_or_else(|| { - RunnerError::Other(format!("case {} doesn't exist in test file", test_name)) - })?; - Ok(test) - } - - async fn handle_pre_state( - &self, - sequencer: &mut KakarotSequencer, - test_case_name: &str, - ) -> Result<(), RunnerError> { - let test = self.test(test_case_name)?; - - for (address, account) in test.pre.iter() { + fn handle_pre_state(&self, sequencer: &mut KakarotSequencer) -> Result<(), RunnerError> { + for (address, account) in self.pre.iter() { sequencer.setup_account( address, &account.code, @@ -116,23 +64,11 @@ impl BlockchainTestCase { Ok(()) } - async fn handle_transaction( - &self, - sequencer: &mut KakarotSequencer, - test_case_name: &str, - ) -> Result<(), RunnerError> { - let test = self.test(test_case_name)?; - + fn handle_transaction(&self, sequencer: &mut KakarotSequencer) -> Result<(), RunnerError> { // we extract the transaction from the block - let block = test - .blocks - .first() - .ok_or_else(|| RunnerError::Other("test has no blocks".to_string()))?; + let block = &self.block; // we adjust the rlp to correspond with our currently hardcoded CHAIN_ID - let tx_encoded = get_signed_rlp_encoded_transaction( - &block.rlp, - self.transaction.transaction.secret_key, - )?; + let tx_encoded = get_signed_rlp_encoded_transaction(&block.rlp, self.secret_key)?; let starknet_transaction = StarknetTransaction::new(BroadcastedTransaction::Invoke( to_broadcasted_starknet_transaction(&tx_encoded)?, @@ -146,21 +82,13 @@ impl BlockchainTestCase { Ok(()) } - async fn handle_post_state( - &self, - sequencer: &mut KakarotSequencer, - test_case_name: &str, - ) -> Result<(), RunnerError> { - // Get sender address - let test = self.test(test_case_name)?; - let sk = self.transaction.transaction.secret_key; - let wallet = - LocalWallet::from_bytes(&sk.0).map_err(|err| RunnerError::Other(err.to_string()))?; + fn handle_post_state(&self, sequencer: &mut KakarotSequencer) -> Result<(), RunnerError> { + let wallet = LocalWallet::from_bytes(&self.secret_key.0) + .map_err(|err| RunnerError::Other(err.to_string()))?; let sender_address = wallet.address().to_fixed_bytes(); + let maybe_block_header = self.block.block_header.as_ref(); // Get gas used from block header - let maybe_block = test.blocks.first(); - let maybe_block_header = maybe_block.and_then(|block| block.block_header.as_ref()); let gas_used = maybe_block_header .map(|block_header| block_header.gas_used.0) .unwrap_or_default(); @@ -177,8 +105,10 @@ impl BlockchainTestCase { .unwrap_or_default(); // Get gas price from transaction - let maybe_transaction = maybe_block - .and_then(|block| block.transactions.as_ref()) + let maybe_transaction = self + .block + .transactions + .as_ref() .and_then(|transactions| transactions.first()); let gas_price = maybe_transaction .and_then(|transaction| transaction.gas_price) @@ -190,15 +120,13 @@ impl BlockchainTestCase { base_fee_per_gas } * gas_used; - let post_state = match test.post_state.clone().ok_or_else(|| { - RunnerError::Other(format!("missing post state for {}", test_case_name)) - })? { + let post_state = match self.post.clone() { RootOrState::Root(_) => { - panic!("RootOrState::Root(_) not supported, for {}", test_case_name) + panic!("RootOrState::Root(_) not supported") } RootOrState::State(state) => state, }; - let post_state = update_post_state(post_state, test.pre.clone()); + let post_state = update_post_state(post_state, self.pre.clone()); for (address, expected_state) in post_state.iter() { // Storage @@ -206,8 +134,8 @@ impl BlockchainTestCase { let actual = sequencer.get_storage_at(address, k.0)?; if actual != v.0 { return Err(RunnerError::Other(format!( - "{} storage mismatch for {:#20x} at {:#32x}: expected {:#32x}, got {:#32x}", - test_case_name, address, k.0, v.0, actual + "storage mismatch for {:#20x} at {:#32x}: expected {:#32x}, got {:#32x}", + address, k.0, v.0, actual ))); } } @@ -215,16 +143,16 @@ impl BlockchainTestCase { let actual = sequencer.get_nonce_at(address)?; if actual != expected_state.nonce.0 { return Err(RunnerError::Other(format!( - "{} nonce mismatch for {:#20x}: expected {:#32x}, got {:#32x}", - test_case_name, address, expected_state.nonce.0, actual + "nonce mismatch for {:#20x}: expected {:#32x}, got {:#32x}", + address, expected_state.nonce.0, actual ))); } // Bytecode let actual = sequencer.get_code_at(address)?; if actual != expected_state.code { return Err(RunnerError::Other(format!( - "{} code mismatch for {:#20x}: expected {:#x}, got {:#x}", - test_case_name, address, expected_state.code, actual + "code mismatch for {:#20x}: expected {:#x}, got {:#x}", + address, expected_state.code, actual ))); } // Balance @@ -235,8 +163,8 @@ impl BlockchainTestCase { } if actual != expected_state.balance.0 { return Err(RunnerError::Other(format!( - "{} balance mismatch for {:#20x}: expected {:#32x}, got {:#32x}", - test_case_name, address, expected_state.balance.0, actual + "balance mismatch for {:#20x}: expected {:#32x}, got {:#32x}", + address, expected_state.balance.0, actual ))); } } @@ -247,170 +175,19 @@ impl BlockchainTestCase { #[async_trait] impl Case for BlockchainTestCase { - /// A description of the test. - fn description(&self) -> String { - self.name.clone() - } - - /// Load a test case from a path. This is a path to a directory containing - /// the BlockChainTest - fn load(path: &Path) -> Result { - if Self::should_skip(path) { - return Err(RunnerError::Skipped); - } - - let general_state_tests_path = path - .components() - .filter(|x| !x.as_os_str().eq_ignore_ascii_case("BlockchainTests")) - .collect::(); - let test_name = general_state_tests_path - .file_stem() - .ok_or(RunnerError::Io { - path: path.into(), - error: "expected file".into(), - })? - .to_str() - .ok_or_else(|| RunnerError::Io { - path: path.into(), - error: format!("expected valid utf8 path, got {:?}", path), - })?; - - let general_state_tests_path = general_state_tests_path.as_path(); - Ok(Self { - tests: { - let file = load_file(path)?; - deserialize_into(&file, path)? - }, - transaction: { - let file = load_file(general_state_tests_path)?; - let test: BTreeMap = - deserialize_into(&file, general_state_tests_path)?; - - let case = test - .into_values() - .collect::>() - .first() - .ok_or_else(|| { - RunnerError::Other(format!("Missing transaction for {}", test_name)) - })? - .clone(); - - deserialize_into(&case.to_string(), general_state_tests_path)? - }, - name: test_name.to_string(), - }) - } - - async fn run(&self) -> Result<(), RunnerError> { - let test_regexp: Option = std::env::var("TARGET").ok(); - let test_regexp = match test_regexp { - Some(x) => Some(Regex::new(x.as_str())?), - None => None, - }; - - for (test_name, case) in &self.tests { - if matches!(case.network, ForkSpec::Shanghai) { - if let Some(ref test_regexp) = test_regexp { - if !test_regexp.is_match(test_name) { - continue; - } - } + fn run(&self) -> Result<(), RunnerError> { + let sequencer = KakarotSequencer::new(SequencerState::default()); + let mut sequencer = sequencer.initialize()?; - let sequencer = KakarotSequencer::new(SequencerState::default()); - let mut sequencer = sequencer.initialize()?; + tracing::info!("Running test {}", self.case_name); - tracing::info!("Running test {}", test_name); + self.handle_pre_state(&mut sequencer)?; - self.handle_pre_state(&mut sequencer, test_name).await?; + // handle transaction + self.handle_transaction(&mut sequencer)?; - // handle transaction - self.handle_transaction(&mut sequencer, test_name).await?; - - // handle post state - self.handle_post_state(&mut sequencer, test_name).await?; - } - } + // handle post state + self.handle_post_state(&mut sequencer)?; Ok(()) } } - -/// A container for multiple test cases. -#[derive(Debug)] -pub struct Cases { - /// The contained test cases and the path to each test. - pub test_cases: Vec<(PathBuf, T)>, -} - -impl Cases { - /// Run the contained test cases. - pub async fn run(&self) -> Vec { - let mut results: Vec = Vec::new(); - for (path, case) in &self.test_cases { - results.push(CaseResult::new(path, case, case.run().await)); - } - results - } -} - -#[cfg(test)] -mod tests { - use super::*; - use ctor::ctor; - use revm_primitives::B256; - use tracing_subscriber::{filter, FmtSubscriber}; - - #[ctor] - fn setup() { - // Change this to "error" to see less output. - let filter = filter::EnvFilter::new("ef_testing=info,sequencer=warn"); - let subscriber = FmtSubscriber::builder().with_env_filter(filter).finish(); - tracing::subscriber::set_global_default(subscriber) - .expect("setting tracing default failed"); - } - - #[tokio::test(flavor = "multi_thread")] - async fn test_load_case() { - // Given - let path = Path::new( - "ethereum-tests/BlockchainTests/GeneralStateTests/VMTests/vmArithmeticTest/add.json", - ); - - // When - let case = BlockchainTestCase::load(path).unwrap(); - - // Then - assert!(!case.tests.is_empty()); - assert!(case.transaction.transaction.secret_key != B256::zero()); - } - - #[tokio::test(flavor = "multi_thread")] - async fn test_run_add() { - // Given - let path = Path::new( - "ethereum-tests/BlockchainTests/GeneralStateTests/VMTests/vmArithmeticTest/add.json", - ); - - // When - let case = BlockchainTestCase::load(path).unwrap(); - - // Then - assert!(!case.tests.is_empty()); - assert!(case.transaction.transaction.secret_key != B256::zero()); - - case.run().await.unwrap(); - } - - #[test] - fn test_should_skip() { - // Given - let path = Path::new( - "ethereum-tests/BlockchainTests/GeneralStateTests/VMTests/vmArithmeticTest/mulmod.json", - ); - - // When - let should_skip = BlockchainTestCase::should_skip(path); - - // Then - assert!(should_skip); - } -} diff --git a/crates/ef-testing/src/models/mod.rs b/crates/ef-testing/src/models/mod.rs index 13b8ed2a..1358d235 100644 --- a/crates/ef-testing/src/models/mod.rs +++ b/crates/ef-testing/src/models/mod.rs @@ -1,7 +1,5 @@ pub mod case; pub mod error; -pub mod result; -pub mod suite; use std::str::FromStr; diff --git a/crates/ef-testing/src/models/result.rs b/crates/ef-testing/src/models/result.rs deleted file mode 100644 index e36eb9ba..00000000 --- a/crates/ef-testing/src/models/result.rs +++ /dev/null @@ -1,63 +0,0 @@ -// Inspired by https://github.com/paradigmxyz/reth/tree/main/testing/ef-tests - -use std::path::{Path, PathBuf}; - -use crate::traits::Case; - -use super::error::RunnerError; - -/// The result of running a test. -#[derive(Debug)] -pub struct CaseResult { - /// A description of the test. - pub desc: String, - /// The full path to the test. - pub path: PathBuf, - /// The result of the test. - pub result: Result<(), RunnerError>, -} - -impl CaseResult { - /// Create a new test result. - pub fn new(path: &Path, case: &impl Case, result: Result<(), RunnerError>) -> Self { - Self { - desc: case.description(), - path: path.into(), - result, - } - } -} - -/// Assert that all the given tests passed and print the results to stdout. -pub(crate) fn assert_tests_pass(results: &[CaseResult]) { - let failed = categorize_results(results); - - print_results(&failed); - - assert!(failed.is_empty(), "Some tests failed (see above)"); -} - -/// Categorize test results into `(passed, failed, skipped)`. -pub(crate) fn categorize_results(results: &[CaseResult]) -> Vec<&CaseResult> { - let mut failed = Vec::new(); - - for case in results { - match case.result.as_ref().err() { - Some(RunnerError::Skipped) => (), - Some(_) => failed.push(case), - None => (), - } - } - - failed -} - -/// Display the given test results to stdout. -pub(crate) fn print_results(failed: &[&CaseResult]) { - for case in failed { - match &case.result { - Ok(_) => unreachable!(), - Err(err) => log::error!("[!] Case {} failed:\n{}", case.path.display(), err,), - } - } -} diff --git a/crates/ef-testing/src/models/suite.rs b/crates/ef-testing/src/models/suite.rs deleted file mode 100644 index aea73bb7..00000000 --- a/crates/ef-testing/src/models/suite.rs +++ /dev/null @@ -1,25 +0,0 @@ -// Inspired by https://github.com/paradigmxyz/reth/tree/main/testing/ef-tests -// Modified to use async running - -use crate::traits::Suite; - -use super::case::BlockchainTestCase; - -pub struct BlockchainTestSuite { - pub name: String, -} - -impl BlockchainTestSuite { - #[must_use] - pub const fn new(name: String) -> Self { - Self { name } - } -} - -impl Suite for BlockchainTestSuite { - type Case = BlockchainTestCase; - - fn suite_name(&self) -> String { - format!("BlockchainTests/{}", self.name) - } -} diff --git a/crates/ef-testing/src/traits/mod.rs b/crates/ef-testing/src/traits/mod.rs index c77ab44e..4be84679 100644 --- a/crates/ef-testing/src/traits/mod.rs +++ b/crates/ef-testing/src/traits/mod.rs @@ -1,80 +1,12 @@ //! Traits definition //! Inspired by - +use crate::models::error::RunnerError; use async_trait::async_trait; -use std::{ - fmt::Debug, - path::{Path, PathBuf}, -}; -use walkdir::{DirEntry, WalkDir}; - -use crate::models::{case::Cases, error::RunnerError, result::assert_tests_pass}; +use std::fmt::Debug; /// A single test case, capable of loading a JSON description of itself and running it. #[async_trait] pub trait Case: Debug + Sync + Send + Sized { - /// A description of the test. - fn description(&self) -> String { - "no description".to_string() - } - - /// Load the test from the given file path - /// - /// The file can be assumed to be a valid EF test case as described on . - fn load(path: &Path) -> Result; - - /// Run the test on the Katana test context. - async fn run(&self) -> Result<(), RunnerError>; -} - -#[async_trait] -pub trait Suite { - /// The type of test cases in this suite. - type Case: Case; - - /// The name of the test suite used to locate the individual test cases. - /// - /// # Example - /// - /// - `GeneralStateTests` - /// - `BlockchainTests/InvalidBlocks` - /// - `BlockchainTests/TransitionTests` - fn suite_name(&self) -> String; - - /// Load an run each contained asynchronously test case. - async fn run(&self) { - let suite_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")) - .join("ethereum-tests") - .join(self.suite_name()); - - // todo: assert that the path exists - let test_cases_paths = find_all_files_with_extension(&suite_path, ".json"); - - let mut test_cases = Vec::new(); - - for test_case_path in test_cases_paths { - let case = match Self::Case::load(&test_case_path) { - Ok(case) => case, - Err(e) => match e { - RunnerError::Skipped => continue, - _ => panic!("Failed to load test case: {:?}", e), - }, - }; - test_cases.push((test_case_path, case)); - } - - let results = Cases { test_cases }.run().await; - - assert_tests_pass(&results); - } -} - -/// Recursively find all files with a given extension. -fn find_all_files_with_extension(path: &Path, extension: &str) -> Vec { - WalkDir::new(path) - .into_iter() - .filter_map(Result::ok) - .filter(|e| e.file_name().to_string_lossy().ends_with(extension)) - .map(DirEntry::into_path) - .collect::<_>() + /// Run the test on the Kakarot test sequencer. + fn run(&self) -> Result<(), RunnerError>; } diff --git a/crates/ef-testing/src/utils/mod.rs b/crates/ef-testing/src/utils/mod.rs index 5cd652d4..bcf0130e 100644 --- a/crates/ef-testing/src/utils/mod.rs +++ b/crates/ef-testing/src/utils/mod.rs @@ -1,28 +1,8 @@ -use std::{collections::BTreeMap, fs, path::Path}; +use std::collections::BTreeMap; use ef_tests::models::{Account, State}; use reth_primitives::{Bytes, JsonU256}; use revm_primitives::{B160, U256}; -use serde::Deserialize; - -use crate::models::error::RunnerError; - -pub(crate) fn load_file(path: &Path) -> Result { - fs::read_to_string(path).map_err(|error| RunnerError::Io { - path: path.into(), - error: error.to_string(), - }) -} - -pub(crate) fn deserialize_into Deserialize<'a>>( - val: &str, - path: &Path, -) -> Result { - serde_json::from_str(val).map_err(|error| RunnerError::Io { - path: path.into(), - error: error.to_string(), - }) -} pub(crate) fn update_post_state( mut post_state: BTreeMap, diff --git a/crates/ef-testing/tests/tests.rs b/crates/ef-testing/tests/tests.rs index 4ef6201b..2938763e 100644 --- a/crates/ef-testing/tests/tests.rs +++ b/crates/ef-testing/tests/tests.rs @@ -1,7 +1,10 @@ -use ef_testing::models::suite::BlockchainTestSuite; -use ef_testing::traits::Suite; -use std::format; -use std::sync::Once; +use std::{str::FromStr, sync::Once}; + +use ef_testing::models::case::BlockchainTestCase; +use ef_testing::traits::Case; +use ef_testing_proc_macros::generate_blockchain_tests; +use ef_tests::models::{Block, RootOrState, State}; +use revm_primitives::B256; use tracing_subscriber::{filter, FmtSubscriber}; static INIT: Once = Once::new(); @@ -13,89 +16,7 @@ fn setup() { let subscriber = FmtSubscriber::builder().with_env_filter(filter).finish(); tracing::subscriber::set_global_default(subscriber) .expect("setting tracing default failed"); - - // Set-up log4rs - log4rs::init_file("../../log4rs.yml", Default::default()).unwrap(); }) } -macro_rules! blockchain_tests { - ($test_name:ident, $dir:ident) => { - #[tokio::test(flavor = "multi_thread")] - async fn $test_name() { - setup(); - BlockchainTestSuite::new(format!("GeneralStateTests/{}", stringify!($dir))) - .run() - .await; - } - }; -} - -mod blockchain_tests { - use super::*; - - blockchain_tests!(shanghai, Shanghai); - blockchain_tests!(st_args_zero_one_balance, stArgsZeroOneBalance); - blockchain_tests!(st_attack_test, stAttackTest); - blockchain_tests!(st_bad_opcode, stBadOpcode); - blockchain_tests!(st_bugs, stBugs); - blockchain_tests!(st_call_codes, stCallCodes); - blockchain_tests!(st_call_create_call_code_test, stCallCreateCallCodeTest); - blockchain_tests!( - st_call_delegate_codes_call_code_homestead, - stCallDelegateCodesCallCodeHomestead - ); - blockchain_tests!( - st_call_delegate_codes_homestead, - stCallDelegateCodesHomestead - ); - blockchain_tests!(st_chain_id, stChainId); - blockchain_tests!(st_code_copy_test, stCodeCopyTest); - blockchain_tests!(st_code_size_limit, stCodeSizeLimit); - blockchain_tests!(st_create2, stCreate2); - blockchain_tests!(st_create_test, stCreateTest); - blockchain_tests!(st_delegatecall_test_homestead, stDelegatecallTestHomestead); - blockchain_tests!(st_eip150single_code_gas_prices, stEIP150singleCodeGasPrices); - blockchain_tests!(st_eip150_specific, stEIP150Specific); - blockchain_tests!(st_eip158_specific, stEIP158Specific); - blockchain_tests!(st_eip1559, stEIP1559); - blockchain_tests!(st_eip2930, stEIP2930); - blockchain_tests!(st_eip3607, stEIP3607); - blockchain_tests!(st_example, stExample); - blockchain_tests!(st_ext_code_hash, stExtCodeHash); - blockchain_tests!(st_homestead_specific, stHomesteadSpecific); - blockchain_tests!(st_init_code_test, stInitCodeTest); - blockchain_tests!(st_log_tests, stLogTests); - blockchain_tests!(st_mem_expanding_eip150_calls, stMemExpandingEIP150Calls); - blockchain_tests!(st_memory_stress_test, stMemoryStressTest); - blockchain_tests!(st_memory_test, stMemoryTest); - blockchain_tests!(st_non_zero_calls_test, stNonZeroCallsTest); - blockchain_tests!(st_pre_compiled_contracts, stPreCompiledContracts); - blockchain_tests!(st_pre_compiled_contracts2, stPreCompiledContracts2); - blockchain_tests!(st_quadratic_complexity_test, stQuadraticComplexityTest); - blockchain_tests!(st_random, stRandom); - blockchain_tests!(st_random2, stRandom2); - blockchain_tests!(st_recursive_create, stRecursiveCreate); - blockchain_tests!(st_refund_test, stRefundTest); - blockchain_tests!(st_return_data_test, stReturnDataTest); - blockchain_tests!(st_revert_test, stRevertTest); - blockchain_tests!(st_self_balance, stSelfBalance); - blockchain_tests!(st_shift, stShift); - blockchain_tests!(st_sload_test, stSLoadTest); - blockchain_tests!(st_solidity_test, stSolidityTest); - blockchain_tests!(st_special_test, stSpecialTest); - blockchain_tests!(st_sstore_test, stSStoreTest); - blockchain_tests!(st_stack_tests, stStackTests); - blockchain_tests!(st_static_call, stStaticCall); - blockchain_tests!(st_static_flag_enabled, stStaticFlagEnabled); - blockchain_tests!(st_system_operations_test, stSystemOperationsTest); - blockchain_tests!(st_time_consuming, stTimeConsuming); - blockchain_tests!(st_transaction_test, stTransactionTest); // failing due to: invalid length 62, expected a (both 0x-prefixed or not) hex string or byte array containing between - blockchain_tests!(st_transition_test, stTransitionTest); - blockchain_tests!(st_wallet_test, stWalletTest); - blockchain_tests!(st_zero_calls_revert, stZeroCallsRevert); - blockchain_tests!(st_zero_calls_test, stZeroCallsTest); - blockchain_tests!(st_zero_knowledge, stZeroKnowledge); - blockchain_tests!(st_zero_knowledge2, stZeroKnowledge2); - blockchain_tests!(vm_tests, VmTests); -} +generate_blockchain_tests!(); diff --git a/crates/sequencer/Cargo.toml b/crates/sequencer/Cargo.toml index c72c2b3f..5008fc89 100644 --- a/crates/sequencer/Cargo.toml +++ b/crates/sequencer/Cargo.toml @@ -9,8 +9,6 @@ repository.workspace = true readme.workspace = true license.workspace = true -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - [dependencies] # Starknet # TODO: remove the blockifier patch on the workspace once we can remove Katana. diff --git a/rust-toolchain b/rust-toolchain index 62de2ffb..575f26c7 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1 +1 @@ -nightly-2023-06-18 +nightly-2023-09-22