From c0e30c61402b536ebed34e0916e1dc82b58c0fba Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Sun, 25 Feb 2024 08:25:03 -0700 Subject: [PATCH 01/17] feat: global_db --- Cargo.lock | 229 +++++++++++++------------- core/src/coprocessor.rs | 2 +- core/src/database/inspector.rs | 18 +- core/src/database/mod.rs | 8 +- core/src/environment/mod.rs | 28 +++- core/tests/environment_integration.rs | 36 ++++ 6 files changed, 187 insertions(+), 134 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 79eac064..26f1f638 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -40,9 +40,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42cd52102d3df161c77a887b608d7a4897d7cc112886a9537b738a887a03aaff" +checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" dependencies = [ "cfg-if", "getrandom", @@ -100,9 +100,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4b6fb2b432ff223d513db7f908937f63c252bee0af9b82bfd25b0a5dd1eb0d8" +checksum = "ef197eb250c64962003cb08b90b17f0882c192f4a6f2f544809d424fd7cb0e7d" dependencies = [ "alloy-rlp", "bytes", @@ -159,9 +159,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540" dependencies = [ "anstyle", "anstyle-parse", @@ -217,10 +217,10 @@ version = "0.4.18" dependencies = [ "Inflector", "anyhow", - "arbiter-bindings 0.1.4", - "arbiter-core 0.10.2", - "arbiter-engine 0.3.0", - "arbiter-macros 0.1.1", + "arbiter-bindings 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "arbiter-core 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)", + "arbiter-engine 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "arbiter-macros 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "assert_cmd", "async-trait", "clap", @@ -244,9 +244,7 @@ dependencies = [ [[package]] name = "arbiter-bindings" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0333ea5e6f32bef018cd4a035ff0241899947d8e0c87346c868ec5d4bb51fc" +version = "0.1.6" dependencies = [ "ethers", "serde", @@ -255,6 +253,8 @@ dependencies = [ [[package]] name = "arbiter-bindings" version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7189a325b0e3e56b5e695d3c2fbe8dd70fffcb04b13678ff2be1ad2bb754a38" dependencies = [ "ethers", "serde", @@ -262,16 +262,18 @@ dependencies = [ [[package]] name = "arbiter-core" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6168baef0eb9e7c22d4b02e1edf526a4588edc97551b0cde96ec296f9b801b" +version = "0.10.3" dependencies = [ - "arbiter-bindings 0.1.4", + "arbiter-bindings 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "assert_matches", "async-stream", "async-trait", "bytes", + "cargo_metadata", + "chrono", "crossbeam-channel", "ethers", + "futures", "futures-locks", "futures-timer", "futures-util", @@ -286,23 +288,22 @@ dependencies = [ "thiserror", "tokio", "tracing", + "tracing-subscriber", "uint", ] [[package]] name = "arbiter-core" version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1761b5f12d6e4bb74264a863a0612031555817d78334513c40a0677c4ef6a596" dependencies = [ - "arbiter-bindings 0.1.4", - "assert_matches", + "arbiter-bindings 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "async-stream", "async-trait", "bytes", - "cargo_metadata", - "chrono", "crossbeam-channel", "ethers", - "futures", "futures-locks", "futures-timer", "futures-util", @@ -317,20 +318,17 @@ dependencies = [ "thiserror", "tokio", "tracing", - "tracing-subscriber", "uint", ] [[package]] name = "arbiter-engine" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc9898f9526886e1d16c677a95f257eb529c02232556925a59e1ec57e31b4d4" +version = "0.3.1" dependencies = [ "anyhow", - "arbiter-bindings 0.1.4", - "arbiter-core 0.10.2", - "arbiter-macros 0.1.1", + "arbiter-bindings 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "arbiter-core 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)", + "arbiter-macros 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "async-stream", "async-trait", "crossbeam-channel", @@ -344,16 +342,20 @@ dependencies = [ "tokio-stream", "toml 0.8.10", "tracing", + "tracing-subscriber", + "tracing-test", ] [[package]] name = "arbiter-engine" version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0553d66d507f24b9a7f63b783e9a2a37edaa5d93bfc9f23a3587dfcd65c0c3a6" dependencies = [ "anyhow", - "arbiter-bindings 0.1.4", - "arbiter-core 0.10.2", - "arbiter-macros 0.1.1", + "arbiter-bindings 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "arbiter-core 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)", + "arbiter-macros 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "async-stream", "async-trait", "crossbeam-channel", @@ -367,15 +369,11 @@ dependencies = [ "tokio-stream", "toml 0.8.10", "tracing", - "tracing-subscriber", - "tracing-test", ] [[package]] name = "arbiter-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a685a9ee2090c7113919cb78d9e87e294b4f65e22f43c5938c301b853b78e411" +version = "0.1.3" dependencies = [ "quote", "syn 2.0.50", @@ -384,6 +382,8 @@ dependencies = [ [[package]] name = "arbiter-macros" version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac4a04ffa19e2845c4ea58bb8470d19b13d3c95a8c846e7524d718b7dc182020" dependencies = [ "quote", "syn 2.0.50", @@ -801,9 +801,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.9.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" +checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" dependencies = [ "memchr", "regex-automata 0.4.5", @@ -818,9 +818,9 @@ checksum = "b4ae4235e6dac0694637c763029ecea1a2ec9e4e06ec2729bd21ba4d9c863eb7" [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b" [[package]] name = "byte-slice-cast" @@ -886,9 +886,9 @@ dependencies = [ [[package]] name = "c-kzg" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d8c306be83ec04bf5f73710badd8edf56dea23f2f0d8b7f9fe4644d371c758" +checksum = "94a4bc5367b6284358d2a6a6a1dc2d92ec4b86034561c3b9d3341909752fd848" dependencies = [ "blst", "cc", @@ -924,7 +924,7 @@ checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" dependencies = [ "camino", "cargo-platform", - "semver 1.0.21", + "semver 1.0.22", "serde", "serde_json", "thiserror", @@ -932,11 +932,10 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "3286b845d0fccbdd15af433f61c5970e711987036cb468f437ff6badd70f4e24" dependencies = [ - "jobserver", "libc", ] @@ -957,7 +956,7 @@ dependencies = [ "js-sys", "num-traits", "wasm-bindgen", - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -1124,9 +1123,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d59688ad0945eaf6b84cb44fedbe93484c81b48970e98f09db8a22832d7961" +checksum = "efbd12d49ab0eaf8193ba9175e45f56bbc2e4b27d57b8cfe62aa47942a46b9a9" dependencies = [ "cfg-if", "cpufeatures", @@ -1779,7 +1778,7 @@ dependencies = [ "chrono", "ethers-core", "reqwest", - "semver 1.0.21", + "semver 1.0.22", "serde", "serde_json", "thiserror", @@ -1890,7 +1889,7 @@ dependencies = [ "path-slash", "rayon", "regex", - "semver 1.0.21", + "semver 1.0.22", "serde", "serde_json", "sha2", @@ -2053,7 +2052,7 @@ dependencies = [ "regex", "reqwest", "revm-primitives 1.3.0", - "semver 1.0.21", + "semver 1.0.22", "serde", "serde_json", "serde_regex", @@ -2338,9 +2337,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" +checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60" [[package]] name = "hex" @@ -2605,15 +2604,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9028f49264629065d057f340a86acb84867925865f73bbf8d47b4d149a7e88b8" -[[package]] -name = "jobserver" -version = "0.1.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" -dependencies = [ - "libc", -] - [[package]] name = "js-sys" version = "0.3.68" @@ -4311,7 +4301,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b3683a40f1e94e7389c8e81e5f26bb5d30875ed0b48ab07985ec32eb6d6c712" dependencies = [ - "alloy-primitives 0.6.2", + "alloy-primitives 0.6.3", "auto_impl", "bitflags 2.4.2", "bitvec", @@ -4353,16 +4343,17 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.7" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", + "cfg-if", "getrandom", "libc", "spin 0.9.8", "untrusted 0.9.0", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -4475,7 +4466,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.21", + "semver 1.0.22", ] [[package]] @@ -4498,7 +4489,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" dependencies = [ "log", - "ring 0.17.7", + "ring 0.17.8", "rustls-webpki", "sct", ] @@ -4518,7 +4509,7 @@ version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring 0.17.7", + "ring 0.17.8", "untrusted 0.9.0", ] @@ -4542,9 +4533,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "salsa20" @@ -4612,7 +4603,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring 0.17.7", + "ring 0.17.8", "untrusted 0.9.0", ] @@ -4659,9 +4650,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" dependencies = [ "serde", ] @@ -4902,12 +4893,12 @@ checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" [[package]] name = "socket2" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -5053,7 +5044,7 @@ dependencies = [ "hex", "once_cell", "reqwest", - "semver 1.0.21", + "semver 1.0.22", "serde", "serde_json", "sha2", @@ -5070,7 +5061,7 @@ checksum = "aa64b5e8eecd3a8af7cfc311e29db31a268a62d5953233d3e8243ec77a71c4e3" dependencies = [ "build_const", "hex", - "semver 1.0.21", + "semver 1.0.22", "serde_json", "svm-rs", ] @@ -5201,9 +5192,9 @@ dependencies = [ [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -5375,7 +5366,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.5", + "toml_edit 0.22.6", ] [[package]] @@ -5424,15 +5415,15 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.5" +version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99e68c159e8f5ba8a28c4eb7b0c0c190d77bb479047ca713270048145a9ad28a" +checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6" dependencies = [ "indexmap", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.1", + "winnow 0.6.2", ] [[package]] @@ -5614,9 +5605,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] @@ -5871,7 +5862,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" dependencies = [ "windows-core", - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -5880,7 +5871,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -5898,7 +5889,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -5918,17 +5909,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.3", + "windows_aarch64_msvc 0.52.3", + "windows_i686_gnu 0.52.3", + "windows_i686_msvc 0.52.3", + "windows_x86_64_gnu 0.52.3", + "windows_x86_64_gnullvm 0.52.3", + "windows_x86_64_msvc 0.52.3", ] [[package]] @@ -5939,9 +5930,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" [[package]] name = "windows_aarch64_msvc" @@ -5951,9 +5942,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" [[package]] name = "windows_i686_gnu" @@ -5963,9 +5954,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" [[package]] name = "windows_i686_msvc" @@ -5975,9 +5966,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" [[package]] name = "windows_x86_64_gnu" @@ -5987,9 +5978,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" [[package]] name = "windows_x86_64_gnullvm" @@ -5999,9 +5990,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" [[package]] name = "windows_x86_64_msvc" @@ -6011,9 +6002,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" [[package]] name = "winnow" @@ -6026,9 +6017,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d90f4e0f530c4c69f62b80d839e9ef3855edc9cba471a160c4d692deed62b401" +checksum = "7a4191c47f15cc3ec71fcb4913cb83d58def65dd3787610213c649283b5ce178" dependencies = [ "memchr", ] @@ -6073,9 +6064,9 @@ dependencies = [ [[package]] name = "xxhash-rust" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53be06678ed9e83edb1745eb72efc0bbcd7b5c3c35711a860906aed827a13d61" +checksum = "927da81e25be1e1a2901d59b81b37dd2efd1fc9c9345a55007f09bf5a2d3ee03" [[package]] name = "yaml-rust" diff --git a/core/src/coprocessor.rs b/core/src/coprocessor.rs index 2686d60b..b4d64c51 100644 --- a/core/src/coprocessor.rs +++ b/core/src/coprocessor.rs @@ -21,7 +21,7 @@ pub struct Coprocessor<'a> { impl<'a> Coprocessor<'a> { /// Create a new `Coprocessor` with the given `Environment`. pub fn new(environment: &Environment) -> Self { - let db = environment.db.clone(); + let db = environment.tip_db.clone(); let evm = Evm::builder().with_db(db).build(); Self { evm } } diff --git a/core/src/database/inspector.rs b/core/src/database/inspector.rs index 51f80e17..f40e8379 100644 --- a/core/src/database/inspector.rs +++ b/core/src/database/inspector.rs @@ -42,16 +42,16 @@ impl ArbiterInspector { } } -impl Inspector for ArbiterInspector { +impl Inspector for ArbiterInspector { #[inline] - fn initialize_interp(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { + fn initialize_interp(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { if let Some(gas) = &mut self.gas { gas.initialize_interp(interp, context); } } #[inline] - fn step_end(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { + fn step_end(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { if let Some(gas) = &mut self.gas { gas.step_end(interp, context); } @@ -60,7 +60,7 @@ impl Inspector for ArbiterInspector { #[inline] fn call( &mut self, - context: &mut EvmContext, + context: &mut EvmContext, inputs: &mut CallInputs, return_memory_offset: Range, ) -> Option { @@ -74,7 +74,7 @@ impl Inspector for ArbiterInspector { #[inline] fn call_end( &mut self, - context: &mut EvmContext, + context: &mut EvmContext, inputs: &CallInputs, outcome: CallOutcome, ) -> CallOutcome { @@ -88,10 +88,16 @@ impl Inspector for ArbiterInspector { #[inline] fn create_end( &mut self, - _context: &mut EvmContext, + _context: &mut EvmContext, _inputs: &CreateInputs, outcome: CreateOutcome, ) -> CreateOutcome { outcome } + + #[inline] + fn log(&mut self, context: &mut EvmContext, log: &Log) { + let mut db = context.db.0.write().unwrap(); + db.logs.push(log.clone()); + } } diff --git a/core/src/database/mod.rs b/core/src/database/mod.rs index 10e9ab1a..99890b41 100644 --- a/core/src/database/mod.rs +++ b/core/src/database/mod.rs @@ -24,9 +24,15 @@ pub mod inspector; /// A [`ArbiterDB`] is a wrapper around a [`CacheDB`] that is used to provide /// access to the [`environment::Environment`]'s database to multiple /// [`coprocessor::Coprocessor`]s. -#[derive(Clone, Debug, Serialize, Deserialize)] +#[derive(Debug, Serialize, Deserialize)] pub struct ArbiterDB(pub Arc>>); +impl Clone for ArbiterDB { + fn clone(&self) -> Self { + Self(self.0.clone()) + } +} + impl ArbiterDB { /// Create a new `ArbiterDB`. pub fn new() -> Self { diff --git a/core/src/environment/mod.rs b/core/src/environment/mod.rs index a4ba178c..c880c13d 100644 --- a/core/src/environment/mod.rs +++ b/core/src/environment/mod.rs @@ -72,7 +72,9 @@ pub struct Environment { /// The [`EVM`] that is used as an execution environment and database for /// calls and transactions. - pub(crate) db: ArbiterDB, + pub(crate) tip_db: ArbiterDB, + + pub global_db: Arc>>>, inspector: Option, @@ -196,7 +198,8 @@ impl Environment { socket, inspector, parameters, - db, + tip_db: db, + global_db: Arc::new(RwLock::new(BTreeMap::new())), handle: None, } } @@ -208,7 +211,8 @@ impl Environment { let label = self.parameters.label.clone(); // Bring in the EVM db by cloning the interior Arc (lightweight). - let db = self.db.clone(); + let db = self.tip_db.clone(); + let global_db = self.global_db.clone(); // Bring in the EVM ENV let mut env = Env::default(); @@ -273,12 +277,20 @@ impl Environment { outcome_sender, } => { // Return the old block data in a `ReceiptData` + let old_block_number = evm.block().number; let receipt_data = ReceiptData { - block_number: convert_uint_to_u64(evm.block().number).unwrap(), + block_number: convert_uint_to_u64(old_block_number).unwrap(), transaction_index, cumulative_gas_per_block, }; - outcome_sender.send(Ok(Outcome::BlockUpdateCompleted(receipt_data)))?; + + let mut db = evm.context.evm.db.0.write().unwrap(); + global_db + .write() + .unwrap() + .insert(old_block_number, db.clone()); + db.logs.clear(); + drop(db); // Update the block number and timestamp evm.block_mut().number = U256::from_limbs(block_number.0); @@ -287,6 +299,9 @@ impl Environment { // Reset the counters. transaction_index = U64::from(0); cumulative_gas_per_block = eU256::from(0); + + // Return the old block data in a `ReceiptData` after the block update. + outcome_sender.send(Ok(Outcome::BlockUpdateCompleted(receipt_data)))?; } Instruction::Cheatcode { cheatcode, @@ -455,8 +470,7 @@ impl Environment { continue; } }; - cumulative_gas_per_block += - eU256::from(execution_result.clone().gas_used()); + cumulative_gas_per_block += eU256::from(execution_result.gas_used()); let block_number = convert_uint_to_u64(evm.block().number)?; let receipt_data = ReceiptData { block_number, diff --git a/core/tests/environment_integration.rs b/core/tests/environment_integration.rs index 29eed338..c0dbc4de 100644 --- a/core/tests/environment_integration.rs +++ b/core/tests/environment_integration.rs @@ -148,3 +148,39 @@ async fn env_returns_db() { let db = environment.stop().unwrap(); assert!(!db.0.read().unwrap().accounts.is_empty()) } + +#[tokio::test] +async fn block_logs() { + let (environment, client) = startup(); + let global_db = environment.global_db.clone(); + + let arbiter_token = deploy_arbx(client.clone()).await; + arbiter_token + .mint(Address::zero(), eU256::from(1000)) + .send() + .await + .unwrap() + .await + .unwrap(); + + println!("Global DB: {:?}\n", global_db.read().unwrap()); + + // UPDATE BLOCK + let new_block_number = 69; + let new_block_timestamp = 420; + + client + .update_block(new_block_number, new_block_timestamp) + .unwrap(); + println!("Global DB: {:?}\n", global_db.read().unwrap()); + + arbiter_token + .approve(Address::zero(), eU256::from(1000)) + .send() + .await + .unwrap() + .await + .unwrap(); + client.update_block(6969, 420420).unwrap(); + println!("Global DB: {:?}\n", global_db.read().unwrap()); +} From 3c80448bd1199aca5e870f48d73e1d2a9699e4fb Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Tue, 27 Feb 2024 10:01:25 -0700 Subject: [PATCH 02/17] simpler way to collect just logs --- core/src/coprocessor.rs | 2 +- core/src/database/inspector.rs | 6 ----- core/src/environment/mod.rs | 49 ++++++++++++++++++++++------------ core/src/lib.rs | 2 +- 4 files changed, 34 insertions(+), 25 deletions(-) diff --git a/core/src/coprocessor.rs b/core/src/coprocessor.rs index b4d64c51..2686d60b 100644 --- a/core/src/coprocessor.rs +++ b/core/src/coprocessor.rs @@ -21,7 +21,7 @@ pub struct Coprocessor<'a> { impl<'a> Coprocessor<'a> { /// Create a new `Coprocessor` with the given `Environment`. pub fn new(environment: &Environment) -> Self { - let db = environment.tip_db.clone(); + let db = environment.db.clone(); let evm = Evm::builder().with_db(db).build(); Self { evm } } diff --git a/core/src/database/inspector.rs b/core/src/database/inspector.rs index f40e8379..c1c1a22c 100644 --- a/core/src/database/inspector.rs +++ b/core/src/database/inspector.rs @@ -94,10 +94,4 @@ impl Inspector for ArbiterInspector { ) -> CreateOutcome { outcome } - - #[inline] - fn log(&mut self, context: &mut EvmContext, log: &Log) { - let mut db = context.db.0.write().unwrap(); - db.logs.push(log.clone()); - } } diff --git a/core/src/environment/mod.rs b/core/src/environment/mod.rs index c880c13d..d818976d 100644 --- a/core/src/environment/mod.rs +++ b/core/src/environment/mod.rs @@ -33,7 +33,10 @@ use super::*; #[cfg_attr(doc, allow(unused_imports))] #[cfg(doc)] use crate::middleware::ArbiterMiddleware; -use crate::{console::abi::HardhatConsoleCalls, database::inspector::ArbiterInspector}; +use crate::{ + console::abi::HardhatConsoleCalls, database::inspector::ArbiterInspector, + middleware::connection::revm_logs_to_ethers_logs, +}; pub mod instruction; use instruction::*; @@ -72,9 +75,9 @@ pub struct Environment { /// The [`EVM`] that is used as an execution environment and database for /// calls and transactions. - pub(crate) tip_db: ArbiterDB, + pub(crate) db: ArbiterDB, - pub global_db: Arc>>>, + pub(crate) log_storage: Arc>>>, inspector: Option, @@ -198,8 +201,8 @@ impl Environment { socket, inspector, parameters, - tip_db: db, - global_db: Arc::new(RwLock::new(BTreeMap::new())), + db, + log_storage: Arc::new(RwLock::new(BTreeMap::new())), handle: None, } } @@ -210,9 +213,9 @@ impl Environment { // Bring in parameters for the `Environment`. let label = self.parameters.label.clone(); - // Bring in the EVM db by cloning the interior Arc (lightweight). - let db = self.tip_db.clone(); - let global_db = self.global_db.clone(); + // Bring in the EVM db and log storage by cloning the interior Arc (lightweight). + let db = self.db.clone(); + let log_storage = self.log_storage.clone(); // Bring in the EVM ENV let mut env = Env::default(); @@ -284,14 +287,6 @@ impl Environment { cumulative_gas_per_block, }; - let mut db = evm.context.evm.db.0.write().unwrap(); - global_db - .write() - .unwrap() - .insert(old_block_number, db.clone()); - db.logs.clear(); - drop(db); - // Update the block number and timestamp evm.block_mut().number = U256::from_limbs(block_number.0); evm.block_mut().timestamp = U256::from_limbs(block_timestamp.0); @@ -423,7 +418,6 @@ impl Environment { // Set the tx_env and prepare to process it *evm.tx_mut() = tx_env; - // TODO: Is `transact()` the function we want? let result = evm.transact()?.result; if let Some(console_log) = &mut evm.context.external.console_log { @@ -477,6 +471,27 @@ impl Environment { transaction_index, cumulative_gas_per_block, }; + + // TODO: Don't unwrap this. + let mut logs = log_storage.write().unwrap(); + match logs.get_mut(&evm.block().number) { + Some(log_vec) => { + log_vec.extend(revm_logs_to_ethers_logs( + execution_result.logs(), + &receipt_data, + )); + } + None => { + logs.insert( + evm.block().number, + revm_logs_to_ethers_logs( + execution_result.logs(), + &receipt_data, + ), + ); + } + } + match event_broadcaster.send(Broadcast::Event( execution_result.logs(), receipt_data.clone(), diff --git a/core/src/lib.rs b/core/src/lib.rs index 8a9399e2..b8cab2c2 100644 --- a/core/src/lib.rs +++ b/core/src/lib.rs @@ -46,7 +46,7 @@ use std::{ }; use async_trait::async_trait; -use ethers::types::{Address as eAddress, Filter, H256, U256 as eU256, U64}; +use ethers::types::{Address as eAddress, Filter, Log as eLog, H256, U256 as eU256, U64}; use revm::{ db::{CacheDB, EmptyDB}, interpreter::{CallInputs, CallOutcome}, From 55cf847501be3f967c314426124e6ade817ad4e5 Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Tue, 27 Feb 2024 10:19:05 -0700 Subject: [PATCH 03/17] prepped to implement --- core/src/environment/instruction.rs | 6 ++++++ core/src/environment/mod.rs | 31 ++++++++++++++++++++++++++++- core/src/middleware/mod.rs | 8 ++++++-- 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/core/src/environment/instruction.rs b/core/src/environment/instruction.rs index e9e159e8..f6fd2473 100644 --- a/core/src/environment/instruction.rs +++ b/core/src/environment/instruction.rs @@ -161,6 +161,12 @@ pub(crate) enum EnvironmentData { // TODO: Rename this to `Nonce`? /// The query is for the nonce of an account given by the inner `Address`. TransactionCount(eAddress), + + /// Query for logs in a range of blocks. + Logs { + /// The filter to use to query for logs + filter: Filter, + }, } /// [`ReceiptData`] is a structure that holds the block number, transaction diff --git a/core/src/environment/mod.rs b/core/src/environment/mod.rs index d818976d..7006cf1f 100644 --- a/core/src/environment/mod.rs +++ b/core/src/environment/mod.rs @@ -540,7 +540,6 @@ impl Environment { None => Err(ArbiterCoreError::AccountDoesNotExistError), } } - EnvironmentData::TransactionCount(address) => { let db = &mut evm.context.evm.db; match db @@ -556,6 +555,36 @@ impl Environment { None => Err(ArbiterCoreError::AccountDoesNotExistError), } } + EnvironmentData::Logs { filter } => { + let logs = log_storage.read().unwrap(); + let from_block = U256::from( + filter + .block_option + .get_from_block() + .ok_or(ArbiterCoreError::MissingDataError)? + .as_number() + .ok_or(ArbiterCoreError::MissingDataError)? + .0[0], + ); + let to_block = U256::from( + filter + .block_option + .get_from_block() + .ok_or(ArbiterCoreError::MissingDataError)? + .as_number() + .ok_or(ArbiterCoreError::MissingDataError)? + .0[0], + ); + let mut return_logs = Vec::new(); + logs.keys().for_each(|blocknum| { + if blocknum >= &from_block && blocknum <= &to_block { + return_logs.extend(logs.get(blocknum).cloned().unwrap()); + } + }); + Ok(Outcome::QueryReturn( + serde_json::to_string(&return_logs).unwrap(), + )) + } }; outcome_sender.send(outcome)?; } diff --git a/core/src/middleware/mod.rs b/core/src/middleware/mod.rs index 42bd5224..1daed145 100644 --- a/core/src/middleware/mod.rs +++ b/core/src/middleware/mod.rs @@ -27,8 +27,8 @@ use ethers::{ signers::{Signer, Wallet}, types::{ transaction::{eip2718::TypedTransaction, eip712::Eip712}, - Address as eAddress, BlockId, Bloom, Bytes as eBytes, FilteredParams, Log as eLog, - NameOrAddress, Signature, Transaction, TransactionReceipt, + Address as eAddress, BlockId, Bloom, Bytes as eBytes, FilteredParams, NameOrAddress, + Signature, Transaction, TransactionReceipt, }, }; use futures_timer::Delay; @@ -709,6 +709,10 @@ impl Middleware for ArbiterMiddleware { Ok(id) } + async fn get_logs(&self, filter: &Filter) -> Result, Self::Error> { + todo!() + } + /// Starts watching for logs that match a specific filter. /// /// This method creates a filter watcher that continuously checks for new From 6c44aff9c9de535bb23f74c6aa0d1277252302cc Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Tue, 27 Feb 2024 10:36:43 -0700 Subject: [PATCH 04/17] filter on logs --- core/src/environment/mod.rs | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/core/src/environment/mod.rs b/core/src/environment/mod.rs index 7006cf1f..c27139b5 100644 --- a/core/src/environment/mod.rs +++ b/core/src/environment/mod.rs @@ -20,7 +20,7 @@ use std::thread::{self, JoinHandle}; use crossbeam_channel::{bounded, unbounded, Receiver, Sender}; -use ethers::abi::AbiDecode; +use ethers::{abi::AbiDecode, types::ValueOrArray}; use revm::{ db::AccountState, inspector_handle_register, @@ -581,6 +581,34 @@ impl Environment { return_logs.extend(logs.get(blocknum).cloned().unwrap()); } }); + return_logs.retain(|log| { + filter.topics.iter().any(|topic_option| match topic_option { + Some(topic_val_or_array) => match topic_val_or_array { + ValueOrArray::Value(topic) => match topic { + Some(topic) => log.topics.contains(topic), + None => true, + }, + ValueOrArray::Array(topics) => { + topics.iter().any(|topic| match topic { + Some(topic) => log.topics.contains(topic), + None => true, + }) + } + }, + None => true, + }) + }); + return_logs.retain(|log| { + filter.address.iter().any(|address_value_or_array| { + match address_value_or_array { + ValueOrArray::Value(address) => &log.address == address, + + ValueOrArray::Array(addresses) => { + addresses.iter().any(|addr| &log.address == addr) + } + } + }) + }); Ok(Outcome::QueryReturn( serde_json::to_string(&return_logs).unwrap(), )) From 135dc598e447bf928920ef85dbf5602baee1c2f5 Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Tue, 27 Feb 2024 10:41:18 -0700 Subject: [PATCH 05/17] feat: --- core/src/environment/instruction.rs | 1 + core/src/middleware/mod.rs | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/core/src/environment/instruction.rs b/core/src/environment/instruction.rs index f6fd2473..e655a6bf 100644 --- a/core/src/environment/instruction.rs +++ b/core/src/environment/instruction.rs @@ -145,6 +145,7 @@ pub(crate) enum Outcome { /// Currently this may be the block number, block timestamp, gas price, or /// balance of an account. #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] +#[allow(clippy::large_enum_variant)] pub(crate) enum EnvironmentData { /// The query is for the block number of the [`EVM`]. BlockNumber, diff --git a/core/src/middleware/mod.rs b/core/src/middleware/mod.rs index 1daed145..69cb0f16 100644 --- a/core/src/middleware/mod.rs +++ b/core/src/middleware/mod.rs @@ -710,7 +710,25 @@ impl Middleware for ArbiterMiddleware { } async fn get_logs(&self, filter: &Filter) -> Result, Self::Error> { - todo!() + let provider = self.provider.as_ref(); + provider + .instruction_sender + .upgrade() + .ok_or(ArbiterCoreError::UpgradeSenderError)? + .send(Instruction::Query { + environment_data: EnvironmentData::Logs { + filter: filter.clone(), + }, + outcome_sender: provider.outcome_sender.clone(), + })?; + let outcome = provider.outcome_receiver.recv()??; + match outcome { + Outcome::QueryReturn(outcome) => { + let logs: Vec = serde_json::from_str(outcome.as_ref())?; + Ok(logs) + } + _ => unreachable!(), + } } /// Starts watching for logs that match a specific filter. From 93ff285ba14604f5719c753195e6dd324ec43e56 Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Tue, 27 Feb 2024 11:00:30 -0700 Subject: [PATCH 06/17] fix test --- core/src/environment/mod.rs | 2 +- core/tests/middleware_integration.rs | 36 ++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/core/src/environment/mod.rs b/core/src/environment/mod.rs index c27139b5..a171e706 100644 --- a/core/src/environment/mod.rs +++ b/core/src/environment/mod.rs @@ -569,7 +569,7 @@ impl Environment { let to_block = U256::from( filter .block_option - .get_from_block() + .get_to_block() .ok_or(ArbiterCoreError::MissingDataError)? .as_number() .ok_or(ArbiterCoreError::MissingDataError)? diff --git a/core/tests/middleware_integration.rs b/core/tests/middleware_integration.rs index e9d95f42..c1705cfe 100644 --- a/core/tests/middleware_integration.rs +++ b/core/tests/middleware_integration.rs @@ -625,3 +625,39 @@ async fn stream_with_meta() { assert_eq!(format!("{:?}", stream.next().await), "Some(Ok((ApprovalFilter(ApprovalFilter { owner: 0x2efdc9eecfee3a776209fcb8e9a83a6b221d74f5, spender: 0x2efdc9eecfee3a776209fcb8e9a83a6b221d74f5, amount: 1 }), LogMeta { address: 0x067ea9e44c76a2620f10b39a1b51d5124a299192, block_number: 0, block_hash: 0x0000000000000000000000000000000000000000000000000000000000000000, transaction_hash: 0x0000000000000000000000000000000000000000000000000000000000000000, transaction_index: 2, log_index: 0 })))"); assert_eq!(format!("{:?}", stream.next().await), "Some(Ok((ApprovalFilter(ApprovalFilter { owner: 0x2efdc9eecfee3a776209fcb8e9a83a6b221d74f5, spender: 0x2efdc9eecfee3a776209fcb8e9a83a6b221d74f5, amount: 1 }), LogMeta { address: 0x067ea9e44c76a2620f10b39a1b51d5124a299192, block_number: 1, block_hash: 0x0000000000000000000000000000000000000000000000000000000000000000, transaction_hash: 0x0000000000000000000000000000000000000000000000000000000000000000, transaction_index: 0, log_index: 0 })))"); } + +#[tokio::test] +async fn get_logs() { + let (_environment, client) = startup(); + + let arbx = deploy_arbx(client.clone()).await; + + for _ in 0..2 { + arbx.approve(client.address(), eU256::from(1)) + .send() + .await + .unwrap() + .await + .unwrap(); + } + + client.update_block(1, 1).unwrap(); + + arbx.approve(client.address(), eU256::from(1)) + .send() + .await + .unwrap() + .await + .unwrap(); + + let filter = arbx + .approval_filter() + .filter + .from_block(0) + .to_block(1) + .address(arbx.address()); + println!("filter: {:#?}", filter); + let logs = client.get_logs(&filter).await.unwrap(); + println!("logs: {:#?}", logs); + assert_eq!(logs.len(), 3); +} From 72bff89feb570fae8fe293a47a21fe124c47fcd7 Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Wed, 28 Feb 2024 17:12:40 -0700 Subject: [PATCH 07/17] refactor: `ArbiterDB` and `Environment` --- core/src/database/mod.rs | 59 +++++++++++++++++++++++---------- core/src/environment/mod.rs | 66 +++++++++++++++---------------------- core/src/errors.rs | 11 +++++++ 3 files changed, 80 insertions(+), 56 deletions(-) diff --git a/core/src/database/mod.rs b/core/src/database/mod.rs index 99890b41..5bba5204 100644 --- a/core/src/database/mod.rs +++ b/core/src/database/mod.rs @@ -21,25 +21,41 @@ use super::*; pub mod fork; pub mod inspector; -/// A [`ArbiterDB`] is a wrapper around a [`CacheDB`] that is used to provide -/// access to the [`environment::Environment`]'s database to multiple +/// A [`ArbiterDB`] is contains both a [`CacheDB`] that is used to provide +/// state for the [`environment::Environment`]'s as well as for multiple /// [`coprocessor::Coprocessor`]s. +/// The `logs` field is a [`BTreeMap`] to store [`ethers::types::Log`]s that can be queried from at any point. #[derive(Debug, Serialize, Deserialize)] -pub struct ArbiterDB(pub Arc>>); +pub struct ArbiterDB { + /// The state of the `ArbiterDB`. This is a `CacheDB` that is used to provide + /// a db for the `Environment` to use. + pub state: Arc>>, + + /// The logs of the `ArbiterDB`. This is a `BTreeMap` that is used to store + /// logs that can be queried from at any point. + pub logs: Arc>>>, +} +// Implement `Clone` by hand so we utilize the `Arc`'s `Clone` implementation. impl Clone for ArbiterDB { fn clone(&self) -> Self { - Self(self.0.clone()) + Self { + state: self.state.clone(), + logs: self.logs.clone(), + } } } impl ArbiterDB { /// Create a new `ArbiterDB`. pub fn new() -> Self { - Self(Arc::new(RwLock::new(CacheDB::new(EmptyDB::new())))) + Self { + state: Arc::new(RwLock::new(CacheDB::new(EmptyDB::new()))), + logs: Arc::new(RwLock::new(BTreeMap::new())), + } } - /// Write the `ArbiterDB` to a file at the given path. + /// Write the `ArbiterDB` to a file at the given path.`` pub fn write_to_file(&self, path: &str) -> io::Result<()> { // Serialize the ArbiterDB let serialized = serde_json::to_string(self)?; @@ -55,9 +71,18 @@ impl ArbiterDB { let mut file = fs::File::open(path)?; let mut contents = String::new(); file.read_to_string(&mut contents)?; + // Deserialize the content into ArbiterDB - let cache_db = serde_json::from_str(&contents)?; - Ok(Self(Arc::new(RwLock::new(cache_db)))) + #[derive(Deserialize)] + struct TempDB { + state: Option>, + logs: Option>>, + } + let temp_db: TempDB = serde_json::from_str(&contents)?; + Ok(Self { + state: Arc::new(RwLock::new(temp_db.state.unwrap_or_default())), + logs: Arc::new(RwLock::new(temp_db.logs.unwrap_or_default())), + }) } } @@ -83,11 +108,11 @@ impl Database for ArbiterDB { &mut self, address: revm::primitives::Address, ) -> Result, Self::Error> { - self.0.write().unwrap().basic(address) + self.state.write().unwrap().basic(address) } fn code_by_hash(&mut self, code_hash: B256) -> Result { - self.0.write().unwrap().code_by_hash(code_hash) + self.state.write().unwrap().code_by_hash(code_hash) } fn storage( @@ -95,11 +120,11 @@ impl Database for ArbiterDB { address: revm::primitives::Address, index: U256, ) -> Result { - self.0.write().unwrap().storage(address, index) + self.state.write().unwrap().storage(address, index) } fn block_hash(&mut self, number: U256) -> Result { - self.0.write().unwrap().block_hash(number) + self.state.write().unwrap().block_hash(number) } } @@ -110,11 +135,11 @@ impl DatabaseRef for ArbiterDB { &self, address: revm::primitives::Address, ) -> Result, Self::Error> { - self.0.read().unwrap().basic_ref(address) + self.state.read().unwrap().basic_ref(address) } fn code_by_hash_ref(&self, code_hash: B256) -> Result { - self.0.read().unwrap().code_by_hash_ref(code_hash) + self.state.read().unwrap().code_by_hash_ref(code_hash) } fn storage_ref( @@ -122,11 +147,11 @@ impl DatabaseRef for ArbiterDB { address: revm::primitives::Address, index: U256, ) -> Result { - self.0.read().unwrap().storage_ref(address, index) + self.state.read().unwrap().storage_ref(address, index) } fn block_hash_ref(&self, number: U256) -> Result { - self.0.read().unwrap().block_hash_ref(number) + self.state.read().unwrap().block_hash_ref(number) } } @@ -135,7 +160,7 @@ impl DatabaseCommit for ArbiterDB { &mut self, changes: hashbrown::HashMap, ) { - self.0.write().unwrap().commit(changes) + self.state.write().unwrap().commit(changes) } } diff --git a/core/src/environment/mod.rs b/core/src/environment/mod.rs index a171e706..9289f95a 100644 --- a/core/src/environment/mod.rs +++ b/core/src/environment/mod.rs @@ -77,8 +77,6 @@ pub struct Environment { /// calls and transactions. pub(crate) db: ArbiterDB, - pub(crate) log_storage: Arc>>>, - inspector: Option, /// This gives a means of letting the "outside world" connect to the @@ -147,10 +145,22 @@ impl EnvironmentBuilder { self } - /// Sets the database for the [`Environment`]. This can come from a - /// [`fork::Fork`]. - pub fn with_db(mut self, db: impl Into>) -> Self { - self.db = ArbiterDB(Arc::new(RwLock::new(db.into()))); + /// Sets the state for the [`Environment`]. This can come from a saved state of a simulation + /// or a [`database::fork::Fork`]. + pub fn with_state(mut self, state: impl Into>) -> Self { + self.db.state = Arc::new(RwLock::new(state.into())); + self + } + + /// Sets the logs for the [`Environment`]. This can come from a saved state of a simulation and can be useful for doing analysis. + pub fn with_logs(mut self, logs: impl Into>>) -> Self { + self.db.logs = Arc::new(RwLock::new(logs.into())); + self + } + + /// Sets the entire database for the [`Environment`] including both the state and logs. This can come from the saved state of a simulation and can be useful for doing analysis. + pub fn with_arbiter_db(mut self, db: ArbiterDB) -> Self { + self.db = db; self } @@ -175,7 +185,7 @@ impl Environment { pub fn builder() -> EnvironmentBuilder { EnvironmentBuilder { parameters: EnvironmentParameters::default(), - db: ArbiterDB(Arc::new(RwLock::new(CacheDB::new(EmptyDB::new())))), + db: ArbiterDB::default(), } } @@ -202,7 +212,6 @@ impl Environment { inspector, parameters, db, - log_storage: Arc::new(RwLock::new(BTreeMap::new())), handle: None, } } @@ -215,7 +224,6 @@ impl Environment { // Bring in the EVM db and log storage by cloning the interior Arc (lightweight). let db = self.db.clone(); - let log_storage = self.log_storage.clone(); // Bring in the EVM ENV let mut env = Env::default(); @@ -232,7 +240,7 @@ impl Environment { let handle = thread::spawn(move || { // Create a new EVM builder let mut evm = Evm::builder() - .with_db(db) + .with_db(db.clone()) .with_env(Box::new(env)) .with_external_context(inspector) .append_handler_register(inspector_handle_register) @@ -260,14 +268,7 @@ impl Environment { account_state: AccountState::None, storage: HashMap::new(), }; - let db = &mut evm.context.evm.db; - match db - .0 - .write() - .unwrap() - .accounts - .insert(recast_address, account) - { + match db.state.write()?.accounts.insert(recast_address, account) { None => outcome_sender.send(Ok(Outcome::AddAccountCompleted))?, Some(_) => { outcome_sender.send(Err(ArbiterCoreError::AccountCreationError))?; @@ -307,13 +308,11 @@ impl Environment { key, block: _, } => { - let db = &mut evm.context.evm.db; - let recast_address = Address::from(account.as_fixed_bytes()); let recast_key = B256::from(key.as_fixed_bytes()).into(); // Get the account storage value at the key in the db. - match db.0.write().unwrap().accounts.get_mut(&recast_address) { + match db.state.write().unwrap().accounts.get_mut(&recast_address) { Some(account) => { // Returns zero if the account is missing. let value: U256 = match account.storage.get::(&recast_key) @@ -336,16 +335,13 @@ impl Environment { key, value, } => { - // Get the underlying database - let db = &mut evm.context.evm.db; - let recast_address = Address::from(account.as_fixed_bytes()); let recast_key = B256::from(key.as_fixed_bytes()); let recast_value = B256::from(value.as_fixed_bytes()); // Mutate the db by inserting the new key-value pair into the account's // storage and send the successful CheatcodeCompleted outcome. - match db.0.write().unwrap().accounts.get_mut(&recast_address) { + match db.state.write().unwrap().accounts.get_mut(&recast_address) { Some(account) => { account .storage @@ -362,9 +358,8 @@ impl Environment { }; } Cheatcodes::Deal { address, amount } => { - let db = &mut evm.context.evm.db; let recast_address = Address::from(address.as_fixed_bytes()); - match db.0.write().unwrap().accounts.get_mut(&recast_address) { + match db.state.write().unwrap().accounts.get_mut(&recast_address) { Some(account) => { account.info.balance += U256::from_limbs(amount.0); outcome_sender.send(Ok(Outcome::CheatcodeReturn( @@ -378,10 +373,8 @@ impl Environment { }; } Cheatcodes::Access { address } => { - let db = &mut evm.context.evm.db; let recast_address = Address::from(address.as_fixed_bytes()); - - match db.0.write().unwrap().accounts.get(&recast_address) { + match db.state.write().unwrap().accounts.get(&recast_address) { Some(account) => { let account_state = match account.account_state { AccountState::None => AccountStateSerializable::None, @@ -472,8 +465,7 @@ impl Environment { cumulative_gas_per_block, }; - // TODO: Don't unwrap this. - let mut logs = log_storage.write().unwrap(); + let mut logs = db.logs.write()?; match logs.get_mut(&evm.block().number) { Some(log_vec) => { log_vec.extend(revm_logs_to_ethers_logs( @@ -525,10 +517,8 @@ impl Environment { Ok(Outcome::QueryReturn(evm.tx().gas_price.to_string())) } EnvironmentData::Balance(address) => { - // This unwrap should never fail. - let db = &mut evm.context.evm.db; match db - .0 + .state .read() .unwrap() .accounts @@ -541,9 +531,8 @@ impl Environment { } } EnvironmentData::TransactionCount(address) => { - let db = &mut evm.context.evm.db; match db - .0 + .state .read() .unwrap() .accounts @@ -556,7 +545,7 @@ impl Environment { } } EnvironmentData::Logs { filter } => { - let logs = log_storage.read().unwrap(); + let logs = db.logs.read().unwrap(); let from_block = U256::from( filter .block_option @@ -623,7 +612,6 @@ impl Environment { warn!("Stop signal was not sent to any listeners. Are there any listeners?") } } - let (db, _) = evm.into_db_and_env_with_handler_cfg(); outcome_sender.send(Ok(Outcome::StopCompleted(db)))?; break; } diff --git a/core/src/errors.rs b/core/src/errors.rs index 3a67728a..d9e33299 100644 --- a/core/src/errors.rs +++ b/core/src/errors.rs @@ -1,6 +1,8 @@ //! Errors that can occur when managing or interfacing with Arbiter's sandboxed //! Ethereum environment. +use std::sync::{PoisonError, RwLockWriteGuard}; + // use crossbeam_channel::SendError; use crossbeam_channel::{RecvError, SendError}; use ethers::{ @@ -101,6 +103,9 @@ pub enum ArbiterCoreError { /// Failed to reply to instruction. #[error("{0}")] ReplyError(String), + + #[error("{0}")] + RwLockError(String), } impl From>> for ArbiterCoreError { @@ -109,6 +114,12 @@ impl From>> for ArbiterCoreError { } } +impl From>> for ArbiterCoreError { + fn from(e: PoisonError>) -> Self { + ArbiterCoreError::RwLockError(e.to_string()) + } +} + impl MiddlewareError for ArbiterCoreError { type Inner = ProviderError; From 73c0f7301d7095796f2bb263d22d14919996e221 Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Wed, 28 Feb 2024 17:25:32 -0700 Subject: [PATCH 08/17] remove some unwraps --- core/src/environment/mod.rs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/core/src/environment/mod.rs b/core/src/environment/mod.rs index 9289f95a..90fec692 100644 --- a/core/src/environment/mod.rs +++ b/core/src/environment/mod.rs @@ -258,10 +258,7 @@ impl Environment { label ); match instruction { - Instruction::AddAccount { - address, - outcome_sender, - } => { + Instruction::AddAccount { address, .. } => { let recast_address = Address::from(address.as_fixed_bytes()); let account = revm::db::DbAccount { info: AccountInfo::default(), @@ -283,7 +280,7 @@ impl Environment { // Return the old block data in a `ReceiptData` let old_block_number = evm.block().number; let receipt_data = ReceiptData { - block_number: convert_uint_to_u64(old_block_number).unwrap(), + block_number: convert_uint_to_u64(old_block_number)?, transaction_index, cumulative_gas_per_block, }; @@ -312,7 +309,7 @@ impl Environment { let recast_key = B256::from(key.as_fixed_bytes()).into(); // Get the account storage value at the key in the db. - match db.state.write().unwrap().accounts.get_mut(&recast_address) { + match db.state.write()?.accounts.get_mut(&recast_address) { Some(account) => { // Returns zero if the account is missing. let value: U256 = match account.storage.get::(&recast_key) @@ -341,7 +338,7 @@ impl Environment { // Mutate the db by inserting the new key-value pair into the account's // storage and send the successful CheatcodeCompleted outcome. - match db.state.write().unwrap().accounts.get_mut(&recast_address) { + match db.state.write()?.accounts.get_mut(&recast_address) { Some(account) => { account .storage @@ -359,7 +356,7 @@ impl Environment { } Cheatcodes::Deal { address, amount } => { let recast_address = Address::from(address.as_fixed_bytes()); - match db.state.write().unwrap().accounts.get_mut(&recast_address) { + match db.state.write()?.accounts.get_mut(&recast_address) { Some(account) => { account.info.balance += U256::from_limbs(amount.0); outcome_sender.send(Ok(Outcome::CheatcodeReturn( @@ -374,7 +371,7 @@ impl Environment { } Cheatcodes::Access { address } => { let recast_address = Address::from(address.as_fixed_bytes()); - match db.state.write().unwrap().accounts.get(&recast_address) { + match db.state.write()?.accounts.get(&recast_address) { Some(account) => { let account_state = match account.account_state { AccountState::None => AccountStateSerializable::None, @@ -415,6 +412,8 @@ impl Environment { if let Some(console_log) = &mut evm.context.external.console_log { console_log.0.drain(..).for_each(|log| { + // This unwrap is safe because the logs are guaranteed to be + // `HardhatConsoleCalls` by the `ArbiterInspector`. trace!( "Console logs: {:?}", HardhatConsoleCalls::decode(log).unwrap().to_string() @@ -444,6 +443,8 @@ impl Environment { Ok(result) => { if let Some(console_log) = &mut evm.context.external.console_log { console_log.0.drain(..).for_each(|log| { + // This unwrap is safe because the logs are guaranteed to be + // `HardhatConsoleCalls` by the `ArbiterInspector`. trace!( "Console logs: {:?}", HardhatConsoleCalls::decode(log).unwrap().to_string() From e91a13ec3b39841d836e461005eae1feaa1c5f26 Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Wed, 28 Feb 2024 17:39:20 -0700 Subject: [PATCH 09/17] fix tests --- core/src/environment/mod.rs | 5 ++++- core/src/errors.rs | 1 + core/tests/environment_integration.rs | 21 +++++++++++--------- examples/minter/behaviors/token_admin.rs | 4 ++-- examples/minter/behaviors/token_requester.rs | 4 ++-- examples/template | 2 +- 6 files changed, 22 insertions(+), 15 deletions(-) diff --git a/core/src/environment/mod.rs b/core/src/environment/mod.rs index 90fec692..cd6a9730 100644 --- a/core/src/environment/mod.rs +++ b/core/src/environment/mod.rs @@ -258,7 +258,10 @@ impl Environment { label ); match instruction { - Instruction::AddAccount { address, .. } => { + Instruction::AddAccount { + address, + outcome_sender, + } => { let recast_address = Address::from(address.as_fixed_bytes()); let account = revm::db::DbAccount { info: AccountInfo::default(), diff --git a/core/src/errors.rs b/core/src/errors.rs index d9e33299..0a9a6fe0 100644 --- a/core/src/errors.rs +++ b/core/src/errors.rs @@ -104,6 +104,7 @@ pub enum ArbiterCoreError { #[error("{0}")] ReplyError(String), + /// Failed to grab a lock. #[error("{0}")] RwLockError(String), } diff --git a/core/tests/environment_integration.rs b/core/tests/environment_integration.rs index c0dbc4de..30611405 100644 --- a/core/tests/environment_integration.rs +++ b/core/tests/environment_integration.rs @@ -86,7 +86,7 @@ async fn fork_into_arbiter() { let fork = Fork::from_disk("tests/fork.json").unwrap(); // Get the environment going - let environment = Environment::builder().with_db(fork.db).build(); + let environment = Environment::builder().with_state(fork.db).build(); // Create a client let client = ArbiterMiddleware::new(&environment, Some("name")).unwrap(); @@ -118,7 +118,7 @@ async fn middleware_from_forked_eo() { let fork = Fork::from_disk("tests/fork.json").unwrap(); // Get the environment going - let environment = Environment::builder().with_db(fork.db).build(); + let environment = Environment::builder().with_state(fork.db).build(); let vitalik_address = fork.eoa.get("vitalik").unwrap(); let vitalik_as_a_client = @@ -146,13 +146,12 @@ async fn env_returns_db() { let (environment, client) = startup(); deploy_arbx(client).await; let db = environment.stop().unwrap(); - assert!(!db.0.read().unwrap().accounts.is_empty()) + assert!(!db.state.read().unwrap().accounts.is_empty()) } #[tokio::test] async fn block_logs() { let (environment, client) = startup(); - let global_db = environment.global_db.clone(); let arbiter_token = deploy_arbx(client.clone()).await; arbiter_token @@ -163,16 +162,12 @@ async fn block_logs() { .await .unwrap(); - println!("Global DB: {:?}\n", global_db.read().unwrap()); - - // UPDATE BLOCK let new_block_number = 69; let new_block_timestamp = 420; client .update_block(new_block_number, new_block_timestamp) .unwrap(); - println!("Global DB: {:?}\n", global_db.read().unwrap()); arbiter_token .approve(Address::zero(), eU256::from(1000)) @@ -182,5 +177,13 @@ async fn block_logs() { .await .unwrap(); client.update_block(6969, 420420).unwrap(); - println!("Global DB: {:?}\n", global_db.read().unwrap()); + + let db = environment.stop().unwrap(); + let logs = db.logs.read().unwrap(); + println!("DB Logs: {:?}\n", logs); + assert_eq!(logs.get(&revm::primitives::U256::from(0)).unwrap().len(), 1); + assert_eq!( + logs.get(&revm::primitives::U256::from(69)).unwrap().len(), + 1 + ); } diff --git a/examples/minter/behaviors/token_admin.rs b/examples/minter/behaviors/token_admin.rs index f6669605..496f1901 100644 --- a/examples/minter/behaviors/token_admin.rs +++ b/examples/minter/behaviors/token_admin.rs @@ -52,7 +52,7 @@ impl Behavior for TokenAdmin { &mut self, client: Arc, messager: Messager, - ) -> Result> { + ) -> Result>> { self.messager = Some(messager.clone()); self.client = Some(client.clone()); for token_data in self.token_data.values_mut() { @@ -74,7 +74,7 @@ impl Behavior for TokenAdmin { .get_or_insert_with(HashMap::new) .insert(token_data.name.clone(), token.clone()); } - Ok(messager.stream()?) + Ok(Some(messager.stream()?)) } #[tracing::instrument(skip(self), fields(id = diff --git a/examples/minter/behaviors/token_requester.rs b/examples/minter/behaviors/token_requester.rs index 03c9d9db..e8fcb741 100644 --- a/examples/minter/behaviors/token_requester.rs +++ b/examples/minter/behaviors/token_requester.rs @@ -35,7 +35,7 @@ impl Behavior for TokenRequester { &mut self, client: Arc, mut messager: Messager, - ) -> Result> { + ) -> Result>> { messager .send( To::Agent(self.request_to.clone()), @@ -59,7 +59,7 @@ impl Behavior for TokenRequester { self.messager = Some(messager.clone()); self.client = Some(client.clone()); let transfer_stream = stream_event(token.transfer_filter()); - Ok(transfer_stream) + Ok(Some(transfer_stream)) } #[tracing::instrument(skip(self), fields(id = diff --git a/examples/template b/examples/template index c04df2a2..6211811e 160000 --- a/examples/template +++ b/examples/template @@ -1 +1 @@ -Subproject commit c04df2a2c8d8a06ab1f4339142de1d1fa940d196 +Subproject commit 6211811ee2748d803fa27a755d51f5298a80f9e4 From 8c007b5e2804712c238aa9f8908b43a94618cefa Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Wed, 28 Feb 2024 17:46:25 -0700 Subject: [PATCH 10/17] change: `BTreeMap` -> `HashMap` --- core/src/database/mod.rs | 15 ++++++++------- core/src/environment/mod.rs | 19 +++++++++++++------ 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/core/src/database/mod.rs b/core/src/database/mod.rs index 5bba5204..19a9edf2 100644 --- a/core/src/database/mod.rs +++ b/core/src/database/mod.rs @@ -24,16 +24,17 @@ pub mod inspector; /// A [`ArbiterDB`] is contains both a [`CacheDB`] that is used to provide /// state for the [`environment::Environment`]'s as well as for multiple /// [`coprocessor::Coprocessor`]s. -/// The `logs` field is a [`BTreeMap`] to store [`ethers::types::Log`]s that can be queried from at any point. +/// The `logs` field is a [`HashMap`] to store [`ethers::types::Log`]s that can +/// be queried from at any point. #[derive(Debug, Serialize, Deserialize)] pub struct ArbiterDB { - /// The state of the `ArbiterDB`. This is a `CacheDB` that is used to provide - /// a db for the `Environment` to use. + /// The state of the `ArbiterDB`. This is a `CacheDB` that is used to + /// provide a db for the `Environment` to use. pub state: Arc>>, - /// The logs of the `ArbiterDB`. This is a `BTreeMap` that is used to store + /// The logs of the `ArbiterDB`. This is a `HashMap` that is used to store /// logs that can be queried from at any point. - pub logs: Arc>>>, + pub logs: Arc>>>, } // Implement `Clone` by hand so we utilize the `Arc`'s `Clone` implementation. @@ -51,7 +52,7 @@ impl ArbiterDB { pub fn new() -> Self { Self { state: Arc::new(RwLock::new(CacheDB::new(EmptyDB::new()))), - logs: Arc::new(RwLock::new(BTreeMap::new())), + logs: Arc::new(RwLock::new(HashMap::new())), } } @@ -76,7 +77,7 @@ impl ArbiterDB { #[derive(Deserialize)] struct TempDB { state: Option>, - logs: Option>>, + logs: Option>>, } let temp_db: TempDB = serde_json::from_str(&contents)?; Ok(Self { diff --git a/core/src/environment/mod.rs b/core/src/environment/mod.rs index cd6a9730..d47eada8 100644 --- a/core/src/environment/mod.rs +++ b/core/src/environment/mod.rs @@ -145,20 +145,26 @@ impl EnvironmentBuilder { self } - /// Sets the state for the [`Environment`]. This can come from a saved state of a simulation - /// or a [`database::fork::Fork`]. + /// Sets the state for the [`Environment`]. This can come from a saved state + /// of a simulation or a [`database::fork::Fork`]. pub fn with_state(mut self, state: impl Into>) -> Self { self.db.state = Arc::new(RwLock::new(state.into())); self } - /// Sets the logs for the [`Environment`]. This can come from a saved state of a simulation and can be useful for doing analysis. - pub fn with_logs(mut self, logs: impl Into>>) -> Self { + /// Sets the logs for the [`Environment`]. This can come from a saved state + /// of a simulation and can be useful for doing analysis. + pub fn with_logs( + mut self, + logs: impl Into>>, + ) -> Self { self.db.logs = Arc::new(RwLock::new(logs.into())); self } - /// Sets the entire database for the [`Environment`] including both the state and logs. This can come from the saved state of a simulation and can be useful for doing analysis. + /// Sets the entire database for the [`Environment`] including both the + /// state and logs. This can come from the saved state of a simulation and + /// can be useful for doing analysis. pub fn with_arbiter_db(mut self, db: ArbiterDB) -> Self { self.db = db; self @@ -222,7 +228,8 @@ impl Environment { // Bring in parameters for the `Environment`. let label = self.parameters.label.clone(); - // Bring in the EVM db and log storage by cloning the interior Arc (lightweight). + // Bring in the EVM db and log storage by cloning the interior Arc + // (lightweight). let db = self.db.clone(); // Bring in the EVM ENV From 78b5e8403316cec875a3aa107810b42ae0703526 Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Wed, 28 Feb 2024 17:59:08 -0700 Subject: [PATCH 11/17] feat: `World::run()` returns `ArbiterDB` --- engine/src/errors.rs | 4 ++++ engine/src/world.rs | 14 ++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/engine/src/errors.rs b/engine/src/errors.rs index 8dcdce64..634fa71c 100644 --- a/engine/src/errors.rs +++ b/engine/src/errors.rs @@ -42,4 +42,8 @@ pub enum ArbiterEngineError { /// Error occurred in deserializing toml. #[error(transparent)] TomlError(#[from] toml::de::Error), + + /// Error occurred within [`arbiter_core`]. + #[error(transparent)] + ArbiterCoreError(#[from] arbiter_core::errors::ArbiterCoreError), } diff --git a/engine/src/world.rs b/engine/src/world.rs index 39c369ec..af815ff1 100644 --- a/engine/src/world.rs +++ b/engine/src/world.rs @@ -2,7 +2,7 @@ use std::collections::VecDeque; -use arbiter_core::{environment::Environment, middleware::ArbiterMiddleware}; +use arbiter_core::{database::ArbiterDB, environment::Environment, middleware::ArbiterMiddleware}; use futures_util::future::join_all; use serde::de::DeserializeOwned; use tokio::spawn; @@ -32,7 +32,7 @@ pub struct World { pub agents: Option>, /// The environment for the world. - pub environment: Environment, + pub environment: Option, /// The messaging layer for the world. pub messager: Messager, @@ -45,7 +45,7 @@ impl World { Self { id: id.to_owned(), agents: Some(HashMap::new()), - environment: Environment::builder().build(), + environment: Some(Environment::builder().build()), messager: Messager::new(), } } @@ -158,7 +158,7 @@ impl World { /// This will add the agent defined by `agent_builder` to the world. pub fn add_agent(&mut self, agent_builder: AgentBuilder) { let id = agent_builder.id.clone(); - let client = ArbiterMiddleware::new(&self.environment, Some(&id)) + let client = ArbiterMiddleware::new(self.environment.as_ref().unwrap(), Some(&id)) .expect("Failed to create RevmMiddleware client for agent"); let messager = self.messager.for_agent(&id); let agent = agent_builder @@ -185,7 +185,7 @@ impl World { /// Returns an error if no agents are found in the world, possibly /// indicating that the world has already been run or that no agents /// were added prior to execution. - pub async fn run(&mut self) -> Result<(), ArbiterEngineError> { + pub async fn run(&mut self) -> Result { let agents = match self.agents.take() { Some(agents) => agents, None => { @@ -218,6 +218,8 @@ impl World { } // Await the completion of all tasks. join_all(tasks).await; - Ok(()) + + let db = self.environment.take().unwrap().stop()?; + Ok(db) } } From ed895e733b5a49b65af84a1b895713d6341f45aa Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Mon, 1 Apr 2024 14:55:59 -0600 Subject: [PATCH 12/17] Squashed commit of the following: commit 8a42b48e6160114fad26b6899e40cb823ad50138 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Apr 1 14:43:52 2024 -0600 build(deps): bump mio from 0.8.10 to 0.8.11 in /docs (#927) Bumps [mio](https://github.com/tokio-rs/mio) from 0.8.10 to 0.8.11. - [Release notes](https://github.com/tokio-rs/mio/releases) - [Changelog](https://github.com/tokio-rs/mio/blob/master/CHANGELOG.md) - [Commits](https://github.com/tokio-rs/mio/compare/v0.8.10...v0.8.11) --- updated-dependencies: - dependency-name: mio dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Waylon Jepsen <57912727+0xJepsen@users.noreply.github.com> Co-authored-by: Colin Roberts commit 70ca56453eb98a33b614a469f954701be7f3f254 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Apr 1 14:43:23 2024 -0600 build(deps): bump anyhow from 1.0.80 to 1.0.81 (#933) Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.80 to 1.0.81. - [Release notes](https://github.com/dtolnay/anyhow/releases) - [Commits](https://github.com/dtolnay/anyhow/compare/1.0.80...1.0.81) --- updated-dependencies: - dependency-name: anyhow dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Colin Roberts commit fe1dee1d36d886fc331954e458180601ac06f429 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Apr 1 14:41:31 2024 -0600 build(deps): bump proc-macro2 from 1.0.78 to 1.0.79 (#934) Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.78 to 1.0.79. - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.78...1.0.79) --- updated-dependencies: - dependency-name: proc-macro2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Colin Roberts commit a3eb86c419bc0ec7dcd95900dc0057395393304a Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Apr 1 14:40:57 2024 -0600 build(deps): bump toml from 0.8.10 to 0.8.12 (#935) Bumps [toml](https://github.com/toml-rs/toml) from 0.8.10 to 0.8.12. - [Commits](https://github.com/toml-rs/toml/compare/toml-v0.8.10...toml-v0.8.12) --- updated-dependencies: - dependency-name: toml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Colin Roberts commit edd120dbd9c96576fe9562cb0dc8d28e242eb29d Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Apr 1 14:40:25 2024 -0600 build(deps): bump rayon from 1.8.1 to 1.10.0 (#937) Bumps [rayon](https://github.com/rayon-rs/rayon) from 1.8.1 to 1.10.0. - [Changelog](https://github.com/rayon-rs/rayon/blob/main/RELEASES.md) - [Commits](https://github.com/rayon-rs/rayon/compare/rayon-core-v1.8.1...rayon-core-v1.10.0) --- updated-dependencies: - dependency-name: rayon dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 227525e59d329714b8025d336d2357ca902785d5 Author: Waylon Jepsen <57912727+0xJepsen@users.noreply.github.com> Date: Mon Apr 1 14:39:59 2024 -0600 chore: update submodule (#928) Co-authored-by: Colin Roberts commit e5ddb2930a2cd2c45abbd8619a58da8043931ff0 Author: ali Date: Thu Mar 21 20:15:08 2024 +0300 Update README.md (#936) Fixed the cargo binary install package name commit 8d31dc8bda8e35dc4d9ec3e5bc4b4f182b274828 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed Mar 6 13:42:23 2024 -0700 build(deps): bump ethers from 2.0.13 to 2.0.14 (#931) Bumps [ethers](https://github.com/gakonst/ethers-rs) from 2.0.13 to 2.0.14. - [Release notes](https://github.com/gakonst/ethers-rs/releases) - [Changelog](https://github.com/gakonst/ethers-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/gakonst/ethers-rs/commits) --- updated-dependencies: - dependency-name: ethers dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 87778e4623eb13a5b1fa2880a9210fee4bc4dd37 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed Mar 6 13:41:30 2024 -0700 build(deps): bump clap from 4.5.1 to 4.5.2 (#929) Bumps [clap](https://github.com/clap-rs/clap) from 4.5.1 to 4.5.2. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.1...v4.5.2) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit f682745f7a49d5e7754881480138ea7bde06430d Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed Mar 6 13:40:51 2024 -0700 build(deps): bump chrono from 0.4.34 to 0.4.35 (#930) Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.34 to 0.4.35. - [Release notes](https://github.com/chronotope/chrono/releases) - [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md) - [Commits](https://github.com/chronotope/chrono/compare/v0.4.34...v0.4.35) --- updated-dependencies: - dependency-name: chrono dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 5a2263eb79e99f6d5cccdd8ee3884103f8cb1708 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Mar 4 16:57:30 2024 -0700 build(deps): bump mio from 0.8.10 to 0.8.11 (#926) Bumps [mio](https://github.com/tokio-rs/mio) from 0.8.10 to 0.8.11. - [Release notes](https://github.com/tokio-rs/mio/releases) - [Changelog](https://github.com/tokio-rs/mio/blob/master/CHANGELOG.md) - [Commits](https://github.com/tokio-rs/mio/compare/v0.8.10...v0.8.11) --- updated-dependencies: - dependency-name: mio dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 16bf32ee580d5cc082be6c203694d70051cf992e Author: Colin Roberts Date: Wed Feb 28 19:57:55 2024 -0700 feat: environment logs (#911) * feat: logs * feat: filter on logs * refactor: `ArbiterDB` and `Environment` commit dbca2d41adf78ff19810b8a19a3a5f94ebe0471e Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed Feb 28 14:05:43 2024 -0700 build(deps): bump crossbeam-channel from 0.5.11 to 0.5.12 (#919) Bumps [crossbeam-channel](https://github.com/crossbeam-rs/crossbeam) from 0.5.11 to 0.5.12. - [Release notes](https://github.com/crossbeam-rs/crossbeam/releases) - [Changelog](https://github.com/crossbeam-rs/crossbeam/blob/master/CHANGELOG.md) - [Commits](https://github.com/crossbeam-rs/crossbeam/compare/crossbeam-channel-0.5.11...crossbeam-channel-0.5.12) --- updated-dependencies: - dependency-name: crossbeam-channel dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 63f167b0152e535cee5647e681c52ca11580562f Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed Feb 28 14:05:33 2024 -0700 build(deps): bump syn from 2.0.51 to 2.0.52 (#920) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.51 to 2.0.52. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.51...2.0.52) --- updated-dependencies: - dependency-name: syn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit de894a38388d6301328ecac21d24bf2c8656d396 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed Feb 28 14:05:20 2024 -0700 build(deps): bump tempfile from 3.10.0 to 3.10.1 (#917) Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.10.0 to 3.10.1. - [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md) - [Commits](https://github.com/Stebalien/tempfile/compare/v3.10.0...v3.10.1) --- updated-dependencies: - dependency-name: tempfile dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 50bfbd31ff4a437f0e29c3f8cec41fb5b4667763 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Feb 26 13:38:48 2024 -0700 build(deps): bump syn from 2.0.50 to 2.0.51 (#915) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.50 to 2.0.51. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.50...2.0.51) --- updated-dependencies: - dependency-name: syn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 1db6bece8476aec5e650da32b17295dd8d4e9813 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon Feb 26 10:47:13 2024 -0700 chore: release (#914) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> commit 8211c6ea175e43f9ca22f283607db21cee5b600b Author: Colin Roberts Date: Mon Feb 26 10:42:46 2024 -0700 feat: `error!` output from behavior (#913) * feat: `error!` output from behavior * submodule: update `template` * fix: `minter` example * fix: clippy --- CHANGELOG.md | 5 +++++ Cargo.toml | 20 ++++++++++---------- README.md | 2 +- bindings/lib/forge-std | 2 +- core/Cargo.toml | 2 +- docs/Cargo.lock | 4 ++-- engine/CHANGELOG.md | 5 +++++ engine/Cargo.toml | 2 +- engine/src/machine.rs | 26 ++++++++++++++++++++++---- examples/template | 2 +- 10 files changed, 49 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c683d303..f033c731 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.4.19](https://github.com/primitivefinance/arbiter/compare/arbiter-v0.4.18...arbiter-v0.4.19) - 2024-02-26 + +### Added +- `error!` output from behavior ([#913](https://github.com/primitivefinance/arbiter/pull/913)) + ## [0.4.18](https://github.com/primitivefinance/arbiter/compare/arbiter-v0.4.17...arbiter-v0.4.18) - 2024-02-20 ### Other diff --git a/Cargo.toml b/Cargo.toml index 12580a5f..93a75197 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ exclude = ["benches", "docs"] # Package configuration [package] name = "arbiter" -version = "0.4.18" +version = "0.4.19" edition = "2021" authors = [ "Waylon Jepsen ", @@ -47,32 +47,32 @@ arbiter-macros = "0.1.1" revm = { version = "5.0.0", features = ["ethersdb", "std", "serde"] } revm-primitives = "=2.0.0" -ethers = { version = "2.0.13" } +ethers = { version = "2.0.14" } serde = { version = "1.0.197", features = ["derive"] } serde_json = { version = "1.0.114" } -toml = "0.8.10" +toml = "0.8.12" tokio = { version = "1.36.0", features = ["macros", "full"] } futures = "0.3.30" futures-util = { version = "0.3.30" } async-stream = "0.3.5" async-trait = { version = "0.1.77" } -crossbeam-channel = { version = "0.5.11" } +crossbeam-channel = { version = "0.5.12" } -syn = { version = "2.0.50", features = ["full"] } -proc-macro2 = { version = "1.0.78" } +syn = { version = "2.0.52", features = ["full"] } +proc-macro2 = { version = "1.0.79" } tracing = "0.1.40" thiserror = { version = "1.0.57" } -anyhow = "1.0.80" +anyhow = "1.0.81" # Dependencies for the release build of Arbiter bin [dependencies] arbiter-core.workspace = true # Command line and config -clap = { version = "4.5.1", features = ["derive"] } +clap = { version = "4.5.2", features = ["derive"] } serde.workspace = true serde_json.workspace = true config = { version = "=0.14.0" } @@ -85,7 +85,7 @@ Inflector = { version = "=0.11.4" } # Building files foundry-config = { version = "=0.2.0" } -tempfile = { version = "3.10.0" } +tempfile = { version = "3.10.1" } # Errors thiserror.workspace = true @@ -98,7 +98,7 @@ revm-primitives.workspace = true serde.workspace = true async-trait.workspace = true anyhow.workspace = true -rayon = { version = "1.8.0" } +rayon = { version = "1.10.0" } # Necessary for examples tokio.workspace = true diff --git a/README.md b/README.md index 1f395702..aeb146b5 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,7 @@ You'll be prompted to provide a project name, and the rest will be set up for yo ### Binary To install the Arbiter binary, run: ```bash -cargo install Arbiter +cargo install arbiter ``` This will install the Arbiter binary on your machine. You can then run `arbiter --help` to see that Arbiter was correctly installed and see the help menu. diff --git a/bindings/lib/forge-std b/bindings/lib/forge-std index 3725a22a..2f6762e4 160000 --- a/bindings/lib/forge-std +++ b/bindings/lib/forge-std @@ -1 +1 @@ -Subproject commit 3725a22ae52065de9966beaf32de69aee46fb530 +Subproject commit 2f6762e4f73f3d835457c220b5f62dfeeb6f6341 diff --git a/core/Cargo.toml b/core/Cargo.toml index 1bedef9e..ad696ac7 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -59,7 +59,7 @@ futures.workspace = true # For bench cargo_metadata = "0.18.1" -chrono = "0.4.34" +chrono = "0.4.35" assert_matches = { version = "=1.5" } diff --git a/docs/Cargo.lock b/docs/Cargo.lock index fc5efb4b..69a179bb 100644 --- a/docs/Cargo.lock +++ b/docs/Cargo.lock @@ -2462,9 +2462,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ "libc", "wasi", diff --git a/engine/CHANGELOG.md b/engine/CHANGELOG.md index cb552f5a..f5d82788 100644 --- a/engine/CHANGELOG.md +++ b/engine/CHANGELOG.md @@ -6,6 +6,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.3.2](https://github.com/primitivefinance/arbiter/compare/arbiter-engine-v0.3.1...arbiter-engine-v0.3.2) - 2024-02-26 + +### Added +- `error!` output from behavior ([#913](https://github.com/primitivefinance/arbiter/pull/913)) + ## [0.3.1](https://github.com/primitivefinance/arbiter/compare/arbiter-engine-v0.3.0...arbiter-engine-v0.3.1) - 2024-02-20 ### Other diff --git a/engine/Cargo.toml b/engine/Cargo.toml index ce766755..69996c26 100644 --- a/engine/Cargo.toml +++ b/engine/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "arbiter-engine" -version = "0.3.1" +version = "0.3.2" edition = "2021" authors = [ "Waylon Jepsen ", diff --git a/engine/src/machine.rs b/engine/src/machine.rs index 38084dca..d6e3d888 100644 --- a/engine/src/machine.rs +++ b/engine/src/machine.rs @@ -7,6 +7,7 @@ use anyhow::Result; use arbiter_core::middleware::ArbiterMiddleware; use futures_util::{Stream, StreamExt}; use tokio::task::JoinHandle; +use tracing::error; use super::*; @@ -216,15 +217,27 @@ where async fn execute(&mut self, instruction: MachineInstruction) -> Result<()> { // NOTE: The unwraps here are safe because the `Behavior` in an engine is only // accessed here and it is private. + let id: Option; match instruction { MachineInstruction::Start(client, messager) => { + id = messager.id.clone(); + let id_clone = id.clone(); self.state = State::Starting; let mut behavior = self.behavior.take().unwrap(); let behavior_task: JoinHandle>, B)>> = tokio::spawn(async move { - let id = messager.id.clone(); - let stream = behavior.startup(client, messager).await?; - debug!("startup complete for behavior {:?}", id); + let stream = match behavior.startup(client, messager).await { + Ok(stream) => stream, + Err(e) => { + error!( + "startup failed for behavior {:?}: \n reason: {:?}", + id_clone, e + ); + // Throw a panic as we cannot recover from this for now. + panic!(); + } + }; + debug!("startup complete for behavior {:?}", id_clone); Ok((stream, behavior)) }); let (stream, behavior) = behavior_task.await??; @@ -232,7 +245,12 @@ where Some(stream) => { self.event_stream = Some(stream); self.behavior = Some(behavior); - self.execute(MachineInstruction::Process).await?; + match self.execute(MachineInstruction::Process).await { + Ok(_) => {} + Err(e) => { + error!("process failed for behavior {:?}: \n reason: {:?}", id, e); + } + } Ok(()) } None => { diff --git a/examples/template b/examples/template index 6211811e..a7ff8b9d 160000 --- a/examples/template +++ b/examples/template @@ -1 +1 @@ -Subproject commit 6211811ee2748d803fa27a755d51f5298a80f9e4 +Subproject commit a7ff8b9d6f03c3899caf2d31dd4fd650a7bbfa12 From fffaee077232df2401f77cf7906b6badd7764692 Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Mon, 1 Apr 2024 14:57:42 -0600 Subject: [PATCH 13/17] post merge --- Cargo.lock | 227 +++++++++++++++++++++++------------------ bindings/lib/forge-std | 2 +- examples/template | 2 +- 3 files changed, 128 insertions(+), 103 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 26f1f638..84a52457 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -139,7 +139,7 @@ checksum = "1a047897373be4bbb0224c1afdabca92648dc57a9c9ef6e7b0be3aff7a859c83" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -207,19 +207,19 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.80" +version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" +checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" [[package]] name = "arbiter" -version = "0.4.18" +version = "0.4.19" dependencies = [ "Inflector", "anyhow", "arbiter-bindings 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "arbiter-core 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)", - "arbiter-engine 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "arbiter-engine 0.3.1", "arbiter-macros 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "assert_cmd", "async-trait", @@ -233,11 +233,11 @@ dependencies = [ "revm-primitives 2.0.0", "serde", "serde_json", - "syn 2.0.50", + "syn 2.0.57", "tempfile", "thiserror", "tokio", - "toml 0.8.10", + "toml 0.8.12", "tracing", "tracing-subscriber", ] @@ -324,6 +324,8 @@ dependencies = [ [[package]] name = "arbiter-engine" version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0553d66d507f24b9a7f63b783e9a2a37edaa5d93bfc9f23a3587dfcd65c0c3a6" dependencies = [ "anyhow", "arbiter-bindings 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -340,17 +342,13 @@ dependencies = [ "thiserror", "tokio", "tokio-stream", - "toml 0.8.10", + "toml 0.8.12", "tracing", - "tracing-subscriber", - "tracing-test", ] [[package]] name = "arbiter-engine" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0553d66d507f24b9a7f63b783e9a2a37edaa5d93bfc9f23a3587dfcd65c0c3a6" +version = "0.3.2" dependencies = [ "anyhow", "arbiter-bindings 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -367,8 +365,10 @@ dependencies = [ "thiserror", "tokio", "tokio-stream", - "toml 0.8.10", + "toml 0.8.12", "tracing", + "tracing-subscriber", + "tracing-test", ] [[package]] @@ -376,7 +376,7 @@ name = "arbiter-macros" version = "0.1.3" dependencies = [ "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -386,7 +386,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac4a04ffa19e2845c4ea58bb8470d19b13d3c95a8c846e7524d718b7dc182020" dependencies = [ "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -583,7 +583,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -594,7 +594,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -650,7 +650,7 @@ checksum = "823b8bb275161044e2ac7a25879cb3e2480cb403e3943022c7c769c599b756aa" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -845,7 +845,7 @@ checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -947,9 +947,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.34" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" +checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e" dependencies = [ "android-tzdata", "iana-time-zone", @@ -993,9 +993,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.1" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" dependencies = [ "clap_builder", "clap_derive", @@ -1003,9 +1003,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.1" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" dependencies = [ "anstream", "anstyle", @@ -1015,14 +1015,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.0" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" +checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -1096,8 +1096,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c64043d6c7b7a4c58e39e7efccfdea7b93d885a795d0c054a69dbbf4dd52686" dependencies = [ "crossterm", - "strum", - "strum_macros", + "strum 0.25.0", + "strum_macros 0.25.3", "unicode-width", ] @@ -1117,7 +1117,7 @@ dependencies = [ "rust-ini", "serde", "serde_json", - "toml 0.8.10", + "toml 0.8.12", "yaml-rust", ] @@ -1217,9 +1217,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.11" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b" +checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95" dependencies = [ "crossbeam-utils", ] @@ -1527,9 +1527,9 @@ dependencies = [ [[package]] name = "enr" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe81b5c06ecfdbc71dd845216f225f53b62a10cb8a16c946836a3467f701d05b" +checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" dependencies = [ "base64 0.21.7", "bytes", @@ -1552,7 +1552,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -1563,7 +1563,7 @@ checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -1654,9 +1654,9 @@ dependencies = [ [[package]] name = "ethers" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c7cd562832e2ff584fa844cd2f6e5d4f35bbe11b28c7c9b8df957b2e1d0c701" +checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" dependencies = [ "ethers-addressbook", "ethers-contract", @@ -1670,9 +1670,9 @@ dependencies = [ [[package]] name = "ethers-addressbook" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35dc9a249c066d17e8947ff52a4116406163cf92c7f0763cb8c001760b26403f" +checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" dependencies = [ "ethers-core", "once_cell", @@ -1682,9 +1682,9 @@ dependencies = [ [[package]] name = "ethers-contract" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43304317c7f776876e47f2f637859f6d0701c1ec7930a150f169d5fbe7d76f5a" +checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" dependencies = [ "const-hex", "ethers-contract-abigen", @@ -1701,9 +1701,9 @@ dependencies = [ [[package]] name = "ethers-contract-abigen" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9f96502317bf34f6d71a3e3d270defaa9485d754d789e15a8e04a84161c95eb" +checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" dependencies = [ "Inflector", "const-hex", @@ -1718,16 +1718,16 @@ dependencies = [ "reqwest", "serde", "serde_json", - "syn 2.0.50", - "toml 0.8.10", + "syn 2.0.57", + "toml 0.8.12", "walkdir", ] [[package]] name = "ethers-contract-derive" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "452ff6b0a64507ce8d67ffd48b1da3b42f03680dcf5382244e9c93822cbbf5de" +checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" dependencies = [ "Inflector", "const-hex", @@ -1736,14 +1736,14 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] name = "ethers-core" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aab3cef6cc1c9fd7f787043c81ad3052eff2b96a3878ef1526aa446311bdbfc9" +checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" dependencies = [ "arrayvec", "bytes", @@ -1761,8 +1761,8 @@ dependencies = [ "rlp", "serde", "serde_json", - "strum", - "syn 2.0.50", + "strum 0.26.2", + "syn 2.0.57", "tempfile", "thiserror", "tiny-keccak", @@ -1771,9 +1771,9 @@ dependencies = [ [[package]] name = "ethers-etherscan" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d45b981f5fa769e1d0343ebc2a44cfa88c9bc312eb681b676318b40cef6fb1" +checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" dependencies = [ "chrono", "ethers-core", @@ -1787,9 +1787,9 @@ dependencies = [ [[package]] name = "ethers-middleware" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145211f34342487ef83a597c1e69f0d3e01512217a7c72cc8a25931854c7dca0" +checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" dependencies = [ "async-trait", "auto_impl", @@ -1814,9 +1814,9 @@ dependencies = [ [[package]] name = "ethers-providers" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb6b15393996e3b8a78ef1332d6483c11d839042c17be58decc92fa8b1c3508a" +checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" dependencies = [ "async-trait", "auto_impl", @@ -1852,9 +1852,9 @@ dependencies = [ [[package]] name = "ethers-signers" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3b125a103b56aef008af5d5fb48191984aa326b50bfd2557d231dc499833de3" +checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" dependencies = [ "async-trait", "coins-bip32", @@ -1871,9 +1871,9 @@ dependencies = [ [[package]] name = "ethers-solc" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d21df08582e0a43005018a858cc9b465c5fff9cf4056651be64f844e57d1f55f" +checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" dependencies = [ "cfg-if", "const-hex", @@ -1968,7 +1968,7 @@ dependencies = [ "atomic", "pear", "serde", - "toml 0.8.10", + "toml 0.8.12", "uncased", "version_check", ] @@ -2146,7 +2146,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -2335,6 +2335,12 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hermit-abi" version = "0.3.8" @@ -3085,7 +3091,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -3295,7 +3301,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -3344,7 +3350,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -3418,7 +3424,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -3456,7 +3462,7 @@ checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -3801,7 +3807,7 @@ dependencies = [ "rayon", "regex", "smartstring", - "strum_macros", + "strum_macros 0.25.3", "version_check", ] @@ -3925,7 +3931,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" dependencies = [ "proc-macro2", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -3972,9 +3978,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" dependencies = [ "unicode-ident", ] @@ -3987,7 +3993,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", "version_check", "yansi 1.0.0-rc.1", ] @@ -4084,9 +4090,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -4139,7 +4145,7 @@ checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -4701,7 +4707,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -4997,8 +5003,14 @@ name = "strum" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" + +[[package]] +name = "strum" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29" dependencies = [ - "strum_macros", + "strum_macros 0.26.2", ] [[package]] @@ -5007,11 +5019,24 @@ version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", - "syn 2.0.50", + "syn 2.0.57", +] + +[[package]] +name = "strum_macros" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.57", ] [[package]] @@ -5079,9 +5104,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.50" +version = "2.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb" +checksum = "11a6ae1e52eb25aab8f3fb9fca13be982a373b8f1157ca14b897a825ba4a2d35" dependencies = [ "proc-macro2", "quote", @@ -5143,9 +5168,9 @@ checksum = "cfb5fa503293557c5158bd215fdc225695e567a77e453f5d4452a50a193969bd" [[package]] name = "tempfile" -version = "3.10.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", @@ -5187,7 +5212,7 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -5291,7 +5316,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -5359,14 +5384,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.10" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290" +checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.6", + "toml_edit 0.22.9", ] [[package]] @@ -5415,9 +5440,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.6" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6" +checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4" dependencies = [ "indexmap", "serde", @@ -5451,7 +5476,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -5763,7 +5788,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", "wasm-bindgen-shared", ] @@ -5797,7 +5822,7 @@ checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -6106,7 +6131,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] @@ -6126,7 +6151,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.57", ] [[package]] diff --git a/bindings/lib/forge-std b/bindings/lib/forge-std index 2f6762e4..3725a22a 160000 --- a/bindings/lib/forge-std +++ b/bindings/lib/forge-std @@ -1 +1 @@ -Subproject commit 2f6762e4f73f3d835457c220b5f62dfeeb6f6341 +Subproject commit 3725a22ae52065de9966beaf32de69aee46fb530 diff --git a/examples/template b/examples/template index a7ff8b9d..6211811e 160000 --- a/examples/template +++ b/examples/template @@ -1 +1 @@ -Subproject commit a7ff8b9d6f03c3899caf2d31dd4fd650a7bbfa12 +Subproject commit 6211811ee2748d803fa27a755d51f5298a80f9e4 From 9b6acd2c57961c6967275412ad0d034626d5b89e Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Tue, 2 Apr 2024 13:34:01 -0600 Subject: [PATCH 14/17] Squashed commit of the following: commit 8a42b48e6160114fad26b6899e40cb823ad50138 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Apr 1 14:43:52 2024 -0600 build(deps): bump mio from 0.8.10 to 0.8.11 in /docs (#927) Bumps [mio](https://github.com/tokio-rs/mio) from 0.8.10 to 0.8.11. - [Release notes](https://github.com/tokio-rs/mio/releases) - [Changelog](https://github.com/tokio-rs/mio/blob/master/CHANGELOG.md) - [Commits](https://github.com/tokio-rs/mio/compare/v0.8.10...v0.8.11) --- updated-dependencies: - dependency-name: mio dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Waylon Jepsen <57912727+0xJepsen@users.noreply.github.com> Co-authored-by: Colin Roberts commit 70ca56453eb98a33b614a469f954701be7f3f254 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Apr 1 14:43:23 2024 -0600 build(deps): bump anyhow from 1.0.80 to 1.0.81 (#933) Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.80 to 1.0.81. - [Release notes](https://github.com/dtolnay/anyhow/releases) - [Commits](https://github.com/dtolnay/anyhow/compare/1.0.80...1.0.81) --- updated-dependencies: - dependency-name: anyhow dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Colin Roberts commit fe1dee1d36d886fc331954e458180601ac06f429 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Apr 1 14:41:31 2024 -0600 build(deps): bump proc-macro2 from 1.0.78 to 1.0.79 (#934) Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.78 to 1.0.79. - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.78...1.0.79) --- updated-dependencies: - dependency-name: proc-macro2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Colin Roberts commit a3eb86c419bc0ec7dcd95900dc0057395393304a Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Apr 1 14:40:57 2024 -0600 build(deps): bump toml from 0.8.10 to 0.8.12 (#935) Bumps [toml](https://github.com/toml-rs/toml) from 0.8.10 to 0.8.12. - [Commits](https://github.com/toml-rs/toml/compare/toml-v0.8.10...toml-v0.8.12) --- updated-dependencies: - dependency-name: toml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Colin Roberts commit edd120dbd9c96576fe9562cb0dc8d28e242eb29d Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Apr 1 14:40:25 2024 -0600 build(deps): bump rayon from 1.8.1 to 1.10.0 (#937) Bumps [rayon](https://github.com/rayon-rs/rayon) from 1.8.1 to 1.10.0. - [Changelog](https://github.com/rayon-rs/rayon/blob/main/RELEASES.md) - [Commits](https://github.com/rayon-rs/rayon/compare/rayon-core-v1.8.1...rayon-core-v1.10.0) --- updated-dependencies: - dependency-name: rayon dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 227525e59d329714b8025d336d2357ca902785d5 Author: Waylon Jepsen <57912727+0xJepsen@users.noreply.github.com> Date: Mon Apr 1 14:39:59 2024 -0600 chore: update submodule (#928) Co-authored-by: Colin Roberts commit e5ddb2930a2cd2c45abbd8619a58da8043931ff0 Author: ali Date: Thu Mar 21 20:15:08 2024 +0300 Update README.md (#936) Fixed the cargo binary install package name commit 8d31dc8bda8e35dc4d9ec3e5bc4b4f182b274828 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed Mar 6 13:42:23 2024 -0700 build(deps): bump ethers from 2.0.13 to 2.0.14 (#931) Bumps [ethers](https://github.com/gakonst/ethers-rs) from 2.0.13 to 2.0.14. - [Release notes](https://github.com/gakonst/ethers-rs/releases) - [Changelog](https://github.com/gakonst/ethers-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/gakonst/ethers-rs/commits) --- updated-dependencies: - dependency-name: ethers dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 87778e4623eb13a5b1fa2880a9210fee4bc4dd37 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed Mar 6 13:41:30 2024 -0700 build(deps): bump clap from 4.5.1 to 4.5.2 (#929) Bumps [clap](https://github.com/clap-rs/clap) from 4.5.1 to 4.5.2. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.1...v4.5.2) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit f682745f7a49d5e7754881480138ea7bde06430d Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed Mar 6 13:40:51 2024 -0700 build(deps): bump chrono from 0.4.34 to 0.4.35 (#930) Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.34 to 0.4.35. - [Release notes](https://github.com/chronotope/chrono/releases) - [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md) - [Commits](https://github.com/chronotope/chrono/compare/v0.4.34...v0.4.35) --- updated-dependencies: - dependency-name: chrono dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 5a2263eb79e99f6d5cccdd8ee3884103f8cb1708 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Mar 4 16:57:30 2024 -0700 build(deps): bump mio from 0.8.10 to 0.8.11 (#926) Bumps [mio](https://github.com/tokio-rs/mio) from 0.8.10 to 0.8.11. - [Release notes](https://github.com/tokio-rs/mio/releases) - [Changelog](https://github.com/tokio-rs/mio/blob/master/CHANGELOG.md) - [Commits](https://github.com/tokio-rs/mio/compare/v0.8.10...v0.8.11) --- updated-dependencies: - dependency-name: mio dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 16bf32ee580d5cc082be6c203694d70051cf992e Author: Colin Roberts Date: Wed Feb 28 19:57:55 2024 -0700 feat: environment logs (#911) * feat: logs * feat: filter on logs * refactor: `ArbiterDB` and `Environment` commit dbca2d41adf78ff19810b8a19a3a5f94ebe0471e Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed Feb 28 14:05:43 2024 -0700 build(deps): bump crossbeam-channel from 0.5.11 to 0.5.12 (#919) Bumps [crossbeam-channel](https://github.com/crossbeam-rs/crossbeam) from 0.5.11 to 0.5.12. - [Release notes](https://github.com/crossbeam-rs/crossbeam/releases) - [Changelog](https://github.com/crossbeam-rs/crossbeam/blob/master/CHANGELOG.md) - [Commits](https://github.com/crossbeam-rs/crossbeam/compare/crossbeam-channel-0.5.11...crossbeam-channel-0.5.12) --- updated-dependencies: - dependency-name: crossbeam-channel dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 63f167b0152e535cee5647e681c52ca11580562f Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed Feb 28 14:05:33 2024 -0700 build(deps): bump syn from 2.0.51 to 2.0.52 (#920) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.51 to 2.0.52. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.51...2.0.52) --- updated-dependencies: - dependency-name: syn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit de894a38388d6301328ecac21d24bf2c8656d396 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed Feb 28 14:05:20 2024 -0700 build(deps): bump tempfile from 3.10.0 to 3.10.1 (#917) Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.10.0 to 3.10.1. - [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md) - [Commits](https://github.com/Stebalien/tempfile/compare/v3.10.0...v3.10.1) --- updated-dependencies: - dependency-name: tempfile dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 50bfbd31ff4a437f0e29c3f8cec41fb5b4667763 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Feb 26 13:38:48 2024 -0700 build(deps): bump syn from 2.0.50 to 2.0.51 (#915) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.50 to 2.0.51. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.50...2.0.51) --- updated-dependencies: - dependency-name: syn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 1db6bece8476aec5e650da32b17295dd8d4e9813 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon Feb 26 10:47:13 2024 -0700 chore: release (#914) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> commit 8211c6ea175e43f9ca22f283607db21cee5b600b Author: Colin Roberts Date: Mon Feb 26 10:42:46 2024 -0700 feat: `error!` output from behavior (#913) * feat: `error!` output from behavior * submodule: update `template` * fix: `minter` example * fix: clippy --- Cargo.lock | 116 +++++++++++++++++++---------------------- bindings/lib/forge-std | 2 +- examples/template | 2 +- 3 files changed, 57 insertions(+), 63 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 84a52457..a59cd5eb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -139,7 +139,7 @@ checksum = "1a047897373be4bbb0224c1afdabca92648dc57a9c9ef6e7b0be3aff7a859c83" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -233,7 +233,7 @@ dependencies = [ "revm-primitives 2.0.0", "serde", "serde_json", - "syn 2.0.57", + "syn 2.0.52", "tempfile", "thiserror", "tokio", @@ -376,7 +376,7 @@ name = "arbiter-macros" version = "0.1.3" dependencies = [ "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -386,7 +386,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac4a04ffa19e2845c4ea58bb8470d19b13d3c95a8c846e7524d718b7dc182020" dependencies = [ "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -583,7 +583,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -594,7 +594,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -650,7 +650,7 @@ checksum = "823b8bb275161044e2ac7a25879cb3e2480cb403e3943022c7c769c599b756aa" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -845,7 +845,7 @@ checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -947,9 +947,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.37" +version = "0.4.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e" +checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a" dependencies = [ "android-tzdata", "iana-time-zone", @@ -993,9 +993,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.4" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651" dependencies = [ "clap_builder", "clap_derive", @@ -1015,14 +1015,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.4" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" +checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -1552,7 +1552,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -1563,7 +1563,7 @@ checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -1718,7 +1718,7 @@ dependencies = [ "reqwest", "serde", "serde_json", - "syn 2.0.57", + "syn 2.0.52", "toml 0.8.12", "walkdir", ] @@ -1736,7 +1736,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -1761,8 +1761,8 @@ dependencies = [ "rlp", "serde", "serde_json", - "strum 0.26.2", - "syn 2.0.57", + "strum 0.26.1", + "syn 2.0.52", "tempfile", "thiserror", "tiny-keccak", @@ -2146,7 +2146,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -2335,12 +2335,6 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - [[package]] name = "hermit-abi" version = "0.3.8" @@ -2906,9 +2900,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ "libc", "wasi", @@ -3091,7 +3085,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -3301,7 +3295,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -3350,7 +3344,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -3424,7 +3418,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -3462,7 +3456,7 @@ checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -3931,7 +3925,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" dependencies = [ "proc-macro2", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -3993,7 +3987,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", "version_check", "yansi 1.0.0-rc.1", ] @@ -4145,7 +4139,7 @@ checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -4707,7 +4701,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -5006,11 +5000,11 @@ checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" [[package]] name = "strum" -version = "0.26.2" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29" +checksum = "723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f" dependencies = [ - "strum_macros 0.26.2", + "strum_macros 0.26.1", ] [[package]] @@ -5019,24 +5013,24 @@ version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" dependencies = [ - "heck 0.4.1", + "heck", "proc-macro2", "quote", "rustversion", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] name = "strum_macros" -version = "0.26.2" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946" +checksum = "7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18" dependencies = [ - "heck 0.4.1", + "heck", "proc-macro2", "quote", "rustversion", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -5104,9 +5098,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.57" +version = "2.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11a6ae1e52eb25aab8f3fb9fca13be982a373b8f1157ca14b897a825ba4a2d35" +checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07" dependencies = [ "proc-macro2", "quote", @@ -5212,7 +5206,7 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -5316,7 +5310,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -5391,7 +5385,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.9", + "toml_edit 0.22.8", ] [[package]] @@ -5440,9 +5434,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.9" +version = "0.22.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4" +checksum = "c12219811e0c1ba077867254e5ad62ee2c9c190b0d957110750ac0cda1ae96cd" dependencies = [ "indexmap", "serde", @@ -5476,7 +5470,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -5788,7 +5782,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", "wasm-bindgen-shared", ] @@ -5822,7 +5816,7 @@ checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -6131,7 +6125,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] @@ -6151,7 +6145,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.52", ] [[package]] diff --git a/bindings/lib/forge-std b/bindings/lib/forge-std index 3725a22a..2f6762e4 160000 --- a/bindings/lib/forge-std +++ b/bindings/lib/forge-std @@ -1 +1 @@ -Subproject commit 3725a22ae52065de9966beaf32de69aee46fb530 +Subproject commit 2f6762e4f73f3d835457c220b5f62dfeeb6f6341 diff --git a/examples/template b/examples/template index 6211811e..a7ff8b9d 160000 --- a/examples/template +++ b/examples/template @@ -1 +1 @@ -Subproject commit 6211811ee2748d803fa27a755d51f5298a80f9e4 +Subproject commit a7ff8b9d6f03c3899caf2d31dd4fd650a7bbfa12 From 4c021209b7213709a8350888fd0ae403627bebc6 Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Tue, 2 Apr 2024 13:35:09 -0600 Subject: [PATCH 15/17] update --- Cargo.lock | 601 ++++++++++++++++++++--------------------- bindings/lib/forge-std | 2 +- examples/template | 2 +- 3 files changed, 298 insertions(+), 307 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a59cd5eb..8d67ca6e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -40,9 +40,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.9" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", "getrandom", @@ -53,9 +53,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] @@ -100,9 +100,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef197eb250c64962003cb08b90b17f0882c192f4a6f2f544809d424fd7cb0e7d" +checksum = "600d34d8de81e23b6d909c094e23b3d357e01ca36b78a8c5424c501eedbe86f0" dependencies = [ "alloy-rlp", "bytes", @@ -139,7 +139,7 @@ checksum = "1a047897373be4bbb0224c1afdabca92648dc57a9c9ef6e7b0be3aff7a859c83" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -159,9 +159,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.12" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -219,7 +219,7 @@ dependencies = [ "anyhow", "arbiter-bindings 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "arbiter-core 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)", - "arbiter-engine 0.3.1", + "arbiter-engine 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "arbiter-macros 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "assert_cmd", "async-trait", @@ -233,7 +233,7 @@ dependencies = [ "revm-primitives 2.0.0", "serde", "serde_json", - "syn 2.0.52", + "syn 2.0.57", "tempfile", "thiserror", "tokio", @@ -323,9 +323,7 @@ dependencies = [ [[package]] name = "arbiter-engine" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0553d66d507f24b9a7f63b783e9a2a37edaa5d93bfc9f23a3587dfcd65c0c3a6" +version = "0.3.2" dependencies = [ "anyhow", "arbiter-bindings 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -344,11 +342,15 @@ dependencies = [ "tokio-stream", "toml 0.8.12", "tracing", + "tracing-subscriber", + "tracing-test", ] [[package]] name = "arbiter-engine" version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e540e9fa8de7802a1269f493e8f70ae7e3adcab632f1faabe79e3d47d48b6f57" dependencies = [ "anyhow", "arbiter-bindings 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -367,8 +369,6 @@ dependencies = [ "tokio-stream", "toml 0.8.12", "tracing", - "tracing-subscriber", - "tracing-test", ] [[package]] @@ -376,7 +376,7 @@ name = "arbiter-macros" version = "0.1.3" dependencies = [ "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -386,14 +386,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac4a04ffa19e2845c4ea58bb8470d19b13d3c95a8c846e7524d718b7dc182020" dependencies = [ "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] name = "argminmax" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "202108b46429b765ef483f8a24d5c46f48c14acfdacc086dd4ab6dddf6bcdbd2" +checksum = "52424b59d69d69d5056d508b260553afd91c57e21849579cd1f50ee8b8b88eaa" dependencies = [ "num-traits", ] @@ -583,18 +583,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] name = "async-trait" -version = "0.1.77" +version = "0.1.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -644,26 +644,26 @@ dependencies = [ [[package]] name = "auto_impl" -version = "1.1.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "823b8bb275161044e2ac7a25879cb3e2480cb403e3943022c7c769c599b756aa" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] name = "autocfg" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line", "cc", @@ -727,9 +727,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" dependencies = [ "serde", ] @@ -770,9 +770,9 @@ dependencies = [ [[package]] name = "brotli" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f" +checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -791,9 +791,9 @@ dependencies = [ [[package]] name = "bs58" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ "sha2", "tinyvec", @@ -806,7 +806,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" dependencies = [ "memchr", - "regex-automata 0.4.5", + "regex-automata 0.4.6", "serde", ] @@ -818,9 +818,9 @@ checksum = "b4ae4235e6dac0694637c763029ecea1a2ec9e4e06ec2729bd21ba4d9c863eb7" [[package]] name = "bumpalo" -version = "3.15.3" +version = "3.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b" +checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" [[package]] name = "byte-slice-cast" @@ -830,22 +830,22 @@ checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" [[package]] name = "bytemuck" -version = "1.14.3" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f" +checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" +checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -909,9 +909,9 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" dependencies = [ "serde", ] @@ -932,10 +932,11 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.87" +version = "1.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3286b845d0fccbdd15af433f61c5970e711987036cb468f437ff6badd70f4e24" +checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" dependencies = [ + "jobserver", "libc", ] @@ -947,16 +948,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.35" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a" +checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "wasm-bindgen", - "windows-targets 0.52.3", + "windows-targets 0.52.4", ] [[package]] @@ -993,9 +994,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.2" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" dependencies = [ "clap_builder", "clap_derive", @@ -1015,14 +1016,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.0" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" +checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -1123,9 +1124,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.11.1" +version = "1.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efbd12d49ab0eaf8193ba9175e45f56bbc2e4b27d57b8cfe62aa47942a46b9a9" +checksum = "5ba00838774b4ab0233e355d26710fbfc8327a05c017f6dc4873f876d1f79f78" dependencies = [ "cfg-if", "cpufeatures", @@ -1142,9 +1143,9 @@ checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "const-random" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" dependencies = [ "const-random-macro", ] @@ -1264,7 +1265,7 @@ version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "crossterm_winapi", "libc", "parking_lot", @@ -1325,9 +1326,9 @@ checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" [[package]] name = "der" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" dependencies = [ "const-oid", "zeroize", @@ -1366,12 +1367,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "diff" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" - [[package]] name = "difflib" version = "0.4.0" @@ -1464,9 +1459,9 @@ checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" [[package]] name = "dyn-clone" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "ecdsa" @@ -1545,14 +1540,14 @@ dependencies = [ [[package]] name = "enum_dispatch" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f33313078bb8d4d05a2733a94ac4c2d8a0df9a2b84424ebf4f33bfc224a890e" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -1563,7 +1558,7 @@ checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -1718,7 +1713,7 @@ dependencies = [ "reqwest", "serde", "serde_json", - "syn 2.0.52", + "syn 2.0.57", "toml 0.8.12", "walkdir", ] @@ -1736,7 +1731,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -1761,8 +1756,8 @@ dependencies = [ "rlp", "serde", "serde_json", - "strum 0.26.1", - "syn 2.0.52", + "strum 0.26.2", + "syn 2.0.57", "tempfile", "thiserror", "tiny-keccak", @@ -1934,9 +1929,9 @@ checksum = "95765f67b4b18863968b4a1bd5bb576f732b29a4a28c7cd84c09fa3e2875f33c" [[package]] name = "fastrand" -version = "2.0.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" [[package]] name = "fastrlp" @@ -1961,9 +1956,9 @@ dependencies = [ [[package]] name = "figment" -version = "0.10.14" +version = "0.10.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b6e5bc7bd59d60d0d45a6ccab6cf0f4ce28698fb4e81e750ddf229c9b824026" +checksum = "7270677e7067213e04f323b55084586195f18308cd7546cfac9f873344ccceb6" dependencies = [ "atomic", "pear", @@ -2146,7 +2141,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -2243,8 +2238,8 @@ dependencies = [ "aho-corasick", "bstr", "log", - "regex-automata 0.4.5", - "regex-syntax 0.8.2", + "regex-automata 0.4.6", + "regex-syntax 0.8.3", ] [[package]] @@ -2272,9 +2267,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" +checksum = "4fbd2820c5e49886948654ab546d0688ff24530286bdcf8fca3cefb16d4618eb" dependencies = [ "bytes", "fnv", @@ -2291,11 +2286,11 @@ dependencies = [ [[package]] name = "halfbrown" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5681137554ddff44396e5f149892c769d45301dd9aa19c51602a89ee214cb0ec" +checksum = "8588661a8607108a5ca69cab034063441a0413a0b041c13618a7dd348021ef6f" dependencies = [ - "hashbrown 0.13.2", + "hashbrown 0.14.3", "serde", ] @@ -2304,9 +2299,6 @@ name = "hashbrown" version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" -dependencies = [ - "ahash", -] [[package]] name = "hashbrown" @@ -2335,11 +2327,17 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hermit-abi" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hex" @@ -2376,9 +2374,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -2525,9 +2523,9 @@ checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" [[package]] name = "indexmap" -version = "2.2.3" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -2563,17 +2561,6 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" -[[package]] -name = "is-terminal" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "itertools" version = "0.10.5" @@ -2594,9 +2581,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "itoap" @@ -2604,11 +2591,20 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9028f49264629065d057f340a86acb84867925865f73bbf8d47b4d149a7e88b8" +[[package]] +name = "jobserver" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" +dependencies = [ + "libc", +] + [[package]] name = "js-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -2673,31 +2669,33 @@ dependencies = [ [[package]] name = "lalrpop" -version = "0.20.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da4081d44f4611b66c6dd725e6de3169f9f63905421e8626fcb86b6a898998b8" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" dependencies = [ "ascii-canvas", "bit-set", - "diff", "ena", - "is-terminal", - "itertools 0.10.5", + "itertools 0.11.0", "lalrpop-util", "petgraph", "regex", - "regex-syntax 0.7.5", + "regex-syntax 0.8.3", "string_cache", "term", "tiny-keccak", "unicode-xid", + "walkdir", ] [[package]] name = "lalrpop-util" -version = "0.20.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" +dependencies = [ + "regex-automata 0.4.6", +] [[package]] name = "lazy_static" @@ -2786,13 +2784,12 @@ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "libredox" -version = "0.0.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "libc", - "redox_syscall", ] [[package]] @@ -2819,9 +2816,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "lz4" @@ -2864,9 +2861,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "memmap2" @@ -2911,9 +2908,9 @@ dependencies = [ [[package]] name = "multiversion" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2c7b9d7fe61760ce5ea19532ead98541f6b4c495d87247aff9826445cf6872a" +checksum = "c4851161a11d3ad0bf9402d90ffc3967bf231768bfd7aeb61755ad06dbf1a142" dependencies = [ "multiversion-macros", "target-features", @@ -2921,9 +2918,9 @@ dependencies = [ [[package]] name = "multiversion-macros" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26a83d8500ed06d68877e9de1dde76c1dbb83885dcdbda4ef44ccbc3fbda2ac8" +checksum = "79a74ddee9e0c27d2578323c13905793e91622148f138ba29738f9dddb835e90" dependencies = [ "proc-macro2", "quote", @@ -2933,9 +2930,9 @@ dependencies = [ [[package]] name = "new_debug_unreachable" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" [[package]] name = "nom" @@ -3085,7 +3082,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -3277,25 +3274,25 @@ dependencies = [ [[package]] name = "pear" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ccca0f6c17acc81df8e242ed473ec144cbf5c98037e69aa6d144780aad103c8" +checksum = "bdeeaa00ce488657faba8ebf44ab9361f9365a97bd39ffb8a60663f57ff4b467" dependencies = [ "inlinable_string", "pear_codegen", - "yansi 1.0.0-rc.1", + "yansi 1.0.1", ] [[package]] name = "pear_codegen" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e22670e8eb757cff11d6c199ca7b987f352f0346e0be4dd23869ec72cb53c77" +checksum = "4bab5b985dc082b345f812b7df84e1bef27e7207b39e448439ba8bd69c93f147" dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -3315,9 +3312,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.7" +version = "2.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219c0dcc30b6a27553f9cc242972b67f75b60eb0db71f0b5462f38b058c41546" +checksum = "311fb059dee1a7b802f036316d790138c613a4e8b180c822e3925a662e9f0c95" dependencies = [ "memchr", "thiserror", @@ -3326,9 +3323,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.7" +version = "2.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e1288dbd7786462961e69bfd4df7848c1e37e8b74303dbdab82c3a9cdd2809" +checksum = "f73541b156d32197eecda1a4014d7f868fd2bcb3c550d5386087cfba442bf69c" dependencies = [ "pest", "pest_generator", @@ -3336,22 +3333,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.7" +version = "2.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1381c29a877c6d34b8c176e734f35d7f7f5b3adaefe940cb4d1bb7af94678e2e" +checksum = "c35eeed0a3fab112f75165fdc026b3913f4183133f19b49be773ac9ea966e8bd" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] name = "pest_meta" -version = "2.7.7" +version = "2.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0934d6907f148c22a3acbda520c7eed243ad7487a30f51f6ce52b58b7077a8a" +checksum = "2adbf29bb9776f28caece835398781ab24435585fe0d4dc1374a61db5accedca" dependencies = [ "once_cell", "pest", @@ -3418,7 +3415,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -3441,29 +3438,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -3545,7 +3542,7 @@ dependencies = [ "streaming-iterator", "strength_reduce", "version_check", - "zstd 0.13.0", + "zstd 0.13.1", ] [[package]] @@ -3579,7 +3576,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "befd4d280a82219a01035c4f901319ceba65998c594d0c64f9a439cdee1d7777" dependencies = [ "ahash", - "bitflags 2.4.2", + "bitflags 2.5.0", "bytemuck", "chrono", "chrono-tz", @@ -3682,7 +3679,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d83343e413346f048f3a5ad07c0ea4b5d0bada701a482878213142970b0ddff8" dependencies = [ "ahash", - "bitflags 2.4.2", + "bitflags 2.5.0", "glob", "once_cell", "polars-arrow", @@ -3752,7 +3749,7 @@ dependencies = [ "simdutf8", "snap", "streaming-decompression", - "zstd 0.13.0", + "zstd 0.13.1", ] [[package]] @@ -3920,12 +3917,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" +checksum = "8d3928fb5db768cb86f891ff014f0144589297e3c6a1aba6ed7cecfdace270c7" dependencies = [ "proc-macro2", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -3987,9 +3984,9 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", "version_check", - "yansi 1.0.0-rc.1", + "yansi 1.0.1", ] [[package]] @@ -4000,13 +3997,13 @@ checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.4.2", + "bitflags 2.5.0", "lazy_static", "num-traits", "rand", "rand_chacha", "rand_xorshift", - "regex-syntax 0.8.2", + "regex-syntax 0.8.3", "rusty-fork", "tempfile", "unarray", @@ -4113,9 +4110,9 @@ dependencies = [ [[package]] name = "redox_users" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" dependencies = [ "getrandom", "libredox", @@ -4139,19 +4136,19 @@ checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] name = "regex" -version = "1.10.3" +version = "1.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.5", - "regex-syntax 0.8.2", + "regex-automata 0.4.6", + "regex-syntax 0.8.3", ] [[package]] @@ -4165,13 +4162,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.2", + "regex-syntax 0.8.3", ] [[package]] @@ -4182,21 +4179,15 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.5" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" - -[[package]] -name = "regex-syntax" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "reqwest" -version = "0.11.24" +version = "0.11.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ "base64 0.21.7", "bytes", @@ -4288,7 +4279,7 @@ dependencies = [ "alloy-primitives 0.4.2", "alloy-rlp", "auto_impl", - "bitflags 2.4.2", + "bitflags 2.5.0", "bitvec", "enumn", "hashbrown 0.14.3", @@ -4301,9 +4292,9 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b3683a40f1e94e7389c8e81e5f26bb5d30875ed0b48ab07985ec32eb6d6c712" dependencies = [ - "alloy-primitives 0.6.3", + "alloy-primitives 0.6.4", "auto_impl", - "bitflags 2.4.2", + "bitflags 2.5.0", "bitvec", "blst", "c-kzg", @@ -4394,16 +4385,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" dependencies = [ "base64 0.21.7", - "bitflags 2.4.2", + "bitflags 2.5.0", "serde", "serde_derive", ] [[package]] name = "ruint" -version = "1.11.1" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608a5726529f2f0ef81b8fde9873c4bb829d6b5b5ca6be4d97345ddf0749c825" +checksum = "8f308135fef9fc398342da5472ce7c484529df23743fb7c734e0f3d472971e62" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", @@ -4425,9 +4416,9 @@ dependencies = [ [[package]] name = "ruint-macro" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e666a5496a0b2186dbcd0ff6106e29e093c15591bde62c20d3842007c6978a09" +checksum = "f86854cf50259291520509879a5c294c3c9a4c334e9ff65071c51e42ef1e2343" [[package]] name = "rust-ini" @@ -4471,11 +4462,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.31" +version = "0.38.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "errno", "libc", "linux-raw-sys", @@ -4557,9 +4548,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.10.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7d66a1128282b7ef025a8ead62a4a9fcf017382ec53b8ffbf4d7bf77bd3c60" +checksum = "788745a868b0e751750388f4e6546eb921ef714a4317fa6954f7cde114eb2eb7" dependencies = [ "cfg-if", "derive_more", @@ -4569,9 +4560,9 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.10.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19" +checksum = "7dc2f4e8bc344b9fc3d5f74f72c2e55bfc38d28dc2ebc69c194a3df424e4d9ac" dependencies = [ "proc-macro-crate 1.3.1", "proc-macro2", @@ -4701,14 +4692,14 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" dependencies = [ "indexmap", "itoa", @@ -4819,9 +4810,9 @@ dependencies = [ [[package]] name = "simd-json" -version = "0.13.8" +version = "0.13.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2faf8f101b9bc484337a6a6b0409cf76c139f2fb70a9e3aee6b6774be7bfbf76" +checksum = "b0b84c23a1066e1d650ebc99aa8fb9f8ed0ab96fd36e2e836173c92fc9fb29bc" dependencies = [ "ahash", "getrandom", @@ -4870,9 +4861,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "smartstring" @@ -5000,11 +4991,11 @@ checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" [[package]] name = "strum" -version = "0.26.1" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f" +checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29" dependencies = [ - "strum_macros 0.26.1", + "strum_macros 0.26.2", ] [[package]] @@ -5013,24 +5004,24 @@ version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] name = "strum_macros" -version = "0.26.1" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18" +checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -5098,9 +5089,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.52" +version = "2.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07" +checksum = "11a6ae1e52eb25aab8f3fb9fca13be982a373b8f1157ca14b897a825ba4a2d35" dependencies = [ "proc-macro2", "quote", @@ -5115,9 +5106,9 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "sysinfo" -version = "0.30.5" +version = "0.30.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fb4f3438c8f6389c864e61221cbc97e9bca98b4daf39a5beb7bea660f528bb2" +checksum = "4b1a378e48fb3ce3a5cf04359c456c9c98ff689bcf1c1bc6e6a31f247686f275" dependencies = [ "cfg-if", "core-foundation-sys", @@ -5156,9 +5147,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-features" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfb5fa503293557c5158bd215fdc225695e567a77e453f5d4452a50a193969bd" +checksum = "c1bbb9f3c5c463a01705937a24fdabc5047929ac764b2d5b9cf681c1f5041ed5" [[package]] name = "tempfile" @@ -5191,22 +5182,22 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "thiserror" -version = "1.0.57" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.57" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -5285,9 +5276,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.36.0" +version = "1.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" dependencies = [ "backtrace", "bytes", @@ -5310,7 +5301,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -5325,9 +5316,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", "pin-project-lite", @@ -5385,7 +5376,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.8", + "toml_edit 0.22.9", ] [[package]] @@ -5434,15 +5425,15 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.8" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c12219811e0c1ba077867254e5ad62ee2c9c190b0d957110750ac0cda1ae96cd" +checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4" dependencies = [ "indexmap", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.2", + "winnow 0.6.5", ] [[package]] @@ -5470,7 +5461,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -5633,9 +5624,9 @@ dependencies = [ [[package]] name = "unicode-reverse" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bea5dacebb0d2d0a69a6700a05b59b3908bf801bf563a49bd27a1b60122962c" +checksum = "4b6f4888ebc23094adfb574fdca9fdc891826287a6397d2cd28802ffd6f20c76" dependencies = [ "unicode-segmentation", ] @@ -5738,9 +5729,9 @@ dependencies = [ [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -5763,9 +5754,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -5773,24 +5764,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -5800,9 +5791,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -5810,28 +5801,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "web-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", @@ -5881,7 +5872,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" dependencies = [ "windows-core", - "windows-targets 0.52.3", + "windows-targets 0.52.4", ] [[package]] @@ -5890,7 +5881,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.3", + "windows-targets 0.52.4", ] [[package]] @@ -5908,7 +5899,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.3", + "windows-targets 0.52.4", ] [[package]] @@ -5928,17 +5919,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.3" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" dependencies = [ - "windows_aarch64_gnullvm 0.52.3", - "windows_aarch64_msvc 0.52.3", - "windows_i686_gnu 0.52.3", - "windows_i686_msvc 0.52.3", - "windows_x86_64_gnu 0.52.3", - "windows_x86_64_gnullvm 0.52.3", - "windows_x86_64_msvc 0.52.3", + "windows_aarch64_gnullvm 0.52.4", + "windows_aarch64_msvc 0.52.4", + "windows_i686_gnu 0.52.4", + "windows_i686_msvc 0.52.4", + "windows_x86_64_gnu 0.52.4", + "windows_x86_64_gnullvm 0.52.4", + "windows_x86_64_msvc 0.52.4", ] [[package]] @@ -5949,9 +5940,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.3" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" [[package]] name = "windows_aarch64_msvc" @@ -5961,9 +5952,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.3" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" [[package]] name = "windows_i686_gnu" @@ -5973,9 +5964,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.3" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" [[package]] name = "windows_i686_msvc" @@ -5985,9 +5976,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.3" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" [[package]] name = "windows_x86_64_gnu" @@ -5997,9 +5988,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.3" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" [[package]] name = "windows_x86_64_gnullvm" @@ -6009,9 +6000,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.3" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" [[package]] name = "windows_x86_64_msvc" @@ -6021,9 +6012,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.3" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" [[package]] name = "winnow" @@ -6036,9 +6027,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.2" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a4191c47f15cc3ec71fcb4913cb83d58def65dd3787610213c649283b5ce178" +checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8" dependencies = [ "memchr", ] @@ -6104,9 +6095,9 @@ checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" [[package]] name = "yansi" -version = "1.0.0-rc.1" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1367295b8f788d371ce2dbc842c7b709c73ee1364d30351dd300ec2203b12377" +checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" [[package]] name = "zerocopy" @@ -6125,7 +6116,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -6145,7 +6136,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.57", ] [[package]] @@ -6179,11 +6170,11 @@ dependencies = [ [[package]] name = "zstd" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bffb3309596d527cfcba7dfc6ed6052f1d39dfbd7c867aa2e865e4a449c10110" +checksum = "2d789b1514203a1120ad2429eae43a7bd32b90976a7bb8a05f7ec02fa88cc23a" dependencies = [ - "zstd-safe 7.0.0", + "zstd-safe 7.1.0", ] [[package]] @@ -6198,18 +6189,18 @@ dependencies = [ [[package]] name = "zstd-safe" -version = "7.0.0" +version = "7.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43747c7422e2924c11144d5229878b98180ef8b06cca4ab5af37afc8a8d8ea3e" +checksum = "1cd99b45c6bc03a018c8b8a86025678c87e55526064e38f9df301989dce7ec0a" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.9+zstd.1.5.5" +version = "2.0.10+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" dependencies = [ "cc", "pkg-config", diff --git a/bindings/lib/forge-std b/bindings/lib/forge-std index 2f6762e4..3725a22a 160000 --- a/bindings/lib/forge-std +++ b/bindings/lib/forge-std @@ -1 +1 @@ -Subproject commit 2f6762e4f73f3d835457c220b5f62dfeeb6f6341 +Subproject commit 3725a22ae52065de9966beaf32de69aee46fb530 diff --git a/examples/template b/examples/template index a7ff8b9d..6211811e 160000 --- a/examples/template +++ b/examples/template @@ -1 +1 @@ -Subproject commit a7ff8b9d6f03c3899caf2d31dd4fd650a7bbfa12 +Subproject commit 6211811ee2748d803fa27a755d51f5298a80f9e4 From f955767a5cc234e081d7c1a974e7bbb6eb5eb6ba Mon Sep 17 00:00:00 2001 From: kinrezc Date: Tue, 2 Apr 2024 15:43:00 -0400 Subject: [PATCH 16/17] update submodule --- bindings/lib/forge-std | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bindings/lib/forge-std b/bindings/lib/forge-std index 3725a22a..2f6762e4 160000 --- a/bindings/lib/forge-std +++ b/bindings/lib/forge-std @@ -1 +1 @@ -Subproject commit 3725a22ae52065de9966beaf32de69aee46fb530 +Subproject commit 2f6762e4f73f3d835457c220b5f62dfeeb6f6341 From 87991245c8322ecae36d821a5caae9b7c446bb18 Mon Sep 17 00:00:00 2001 From: Colin Roberts Date: Tue, 2 Apr 2024 13:59:01 -0600 Subject: [PATCH 17/17] Update Cargo.lock --- Cargo.lock | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 32fe2798..8d67ca6e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -374,8 +374,6 @@ dependencies = [ [[package]] name = "arbiter-macros" version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac4a04ffa19e2845c4ea58bb8470d19b13d3c95a8c846e7524d718b7dc182020" dependencies = [ "quote", "syn 2.0.57", @@ -938,6 +936,7 @@ version = "1.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" dependencies = [ + "jobserver", "libc", ] @@ -2592,6 +2591,15 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9028f49264629065d057f340a86acb84867925865f73bbf8d47b4d149a7e88b8" +[[package]] +name = "jobserver" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" +dependencies = [ + "libc", +] + [[package]] name = "js-sys" version = "0.3.69"