diff --git a/Cargo.lock b/Cargo.lock index 6682e943..3e4aa26f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -126,60 +126,103 @@ version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +[[package]] +name = "alloy" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea8ebf106e84a1c37f86244df7da0c7587e697b71a0d565cce079449b85ac6f8" +dependencies = [ + "alloy-consensus", + "alloy-contract", + "alloy-core", + "alloy-eips", + "alloy-genesis", + "alloy-network", + "alloy-provider", + "alloy-pubsub", + "alloy-rpc-client", + "alloy-rpc-types", + "alloy-serde", + "alloy-signer", + "alloy-signer-aws", + "alloy-signer-local", + "alloy-transport", + "alloy-transport-http", + "alloy-transport-ipc", + "alloy-transport-ws", +] + [[package]] name = "alloy-chains" version = "0.1.47" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18c5c520273946ecf715c0010b4e3503d7eba9893cd9ce6b7fff5654c4a3c470" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives", "num_enum", "strum", ] [[package]] name = "alloy-consensus" -version = "0.1.4" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da374e868f54c7f4ad2ad56829827badca388efd645f8cf5fccc61c2b5343504" +checksum = "41ed961a48297c732a5d97ee321aa8bb5009ecadbcb077d8bec90cb54e651629" dependencies = [ "alloy-eips", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rlp", - "alloy-serde 0.1.4", + "alloy-serde", + "auto_impl", "c-kzg", + "derive_more 1.0.0", "serde", ] [[package]] name = "alloy-contract" -version = "0.1.4" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dc6957ff706f9e5f6fd42f52a93e4bce476b726c92d077b348de28c4a76730c" +checksum = "460ab80ce4bda1c80bcf96fe7460520476f2c7b734581c6567fac2708e2a60ef" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", "alloy-network", - "alloy-primitives 0.7.7", + "alloy-network-primitives", + "alloy-primitives", "alloy-provider", + "alloy-pubsub", "alloy-rpc-types-eth", - "alloy-sol-types 0.7.7", - "alloy-transport 0.1.4", + "alloy-sol-types", + "alloy-transport", "futures", "futures-util", "thiserror", ] +[[package]] +name = "alloy-core" +version = "0.8.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8d22df68fa7d9744be0b1a9be3260e9aa089fbf41903ab182328333061ed186" +dependencies = [ + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-primitives", + "alloy-rlp", + "alloy-sol-types", +] + [[package]] name = "alloy-dyn-abi" -version = "0.7.7" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413902aa18a97569e60f679c23f46a18db1656d87ab4d4e49d0e1e52042f66df" +checksum = "1cf633ae9a1f0c82fdb9e559ed2be1c8e415c3e48fc47e1feaf32c6078ec0cdd" dependencies = [ "alloy-json-abi", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-sol-type-parser", - "alloy-sol-types 0.7.7", + "alloy-sol-types", "const-hex", "itoa", "serde", @@ -187,16 +230,43 @@ dependencies = [ "winnow", ] +[[package]] +name = "alloy-eip2930" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "serde", +] + +[[package]] +name = "alloy-eip7702" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ffc577390ce50234e02d841214b3dc0bea6aaaae8e04bbf3cb82e9a45da9eb" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "derive_more 1.0.0", + "k256", + "serde", +] + [[package]] name = "alloy-eips" -version = "0.1.4" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f76ecab54890cdea1e4808fc0891c7e6cfcf71fe1a9fe26810c7280ef768f4ed" +checksum = "b69e06cf9c37be824b9d26d6d101114fdde6af0c87de2828b414c05c4b3daa71" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-eip2930", + "alloy-eip7702", + "alloy-primitives", "alloy-rlp", - "alloy-serde 0.1.4", + "alloy-serde", "c-kzg", + "derive_more 1.0.0", "once_cell", "serde", "sha2 0.10.8", @@ -204,22 +274,22 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "0.4.2" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8429cf4554eed9b40feec7f4451113e76596086447550275e3def933faf47ce3" +checksum = "dde15e14944a88bd6a57d325e9a49b75558746fe16aaccc79713ae50a6a9574c" dependencies = [ - "alloy-primitives 0.8.11", - "alloy-serde 0.4.2", + "alloy-primitives", + "alloy-serde", "serde", ] [[package]] name = "alloy-json-abi" -version = "0.7.7" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc05b04ac331a9f07e3a4036ef7926e49a8bf84a99a1ccfc7e2ab55a5fcbb372" +checksum = "1a500037938085feed8a20dbfc8fce58c599db68c948cfae711147175dee392c" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-sol-type-parser", "serde", "serde_json", @@ -227,25 +297,12 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "0.1.4" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d6f34930b7e3e2744bcc79056c217f00cb2abb33bc5d4ff88da7623c5bb078b" +checksum = "af5979e0d5a7bf9c7eb79749121e8256e59021af611322aee56e77e20776b4b3" dependencies = [ - "alloy-primitives 0.7.7", - "serde", - "serde_json", - "thiserror", - "tracing", -] - -[[package]] -name = "alloy-json-rpc" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8fa8a1a3c4cbd221f2b8e3693aeb328fca79a757fe556ed08e47bbbc2a70db7" -dependencies = [ - "alloy-primitives 0.8.11", - "alloy-sol-types 0.8.11", + "alloy-primitives", + "alloy-sol-types", "serde", "serde_json", "thiserror", @@ -254,32 +311,46 @@ dependencies = [ [[package]] name = "alloy-network" -version = "0.1.4" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25f6895fc31b48fa12306ef9b4f78b7764f8bd6d7d91cdb0a40e233704a0f23f" +checksum = "204237129086ce5dc17a58025e93739b01b45313841f98fa339eb1d780511e57" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-json-rpc 0.1.4", - "alloy-primitives 0.7.7", + "alloy-json-rpc", + "alloy-network-primitives", + "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde 0.1.4", + "alloy-serde", "alloy-signer", - "alloy-sol-types 0.7.7", + "alloy-sol-types", "async-trait", "auto_impl", "futures-utils-wasm", "thiserror", ] +[[package]] +name = "alloy-network-primitives" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514f70ee2a953db21631cd817b13a1571474ec77ddc03d47616d5e8203489fde" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-serde", + "serde", +] + [[package]] name = "alloy-node-bindings" -version = "0.4.2" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f1334a738aa1710cb8227441b3fcc319202ce78e967ef37406940242df4a454" +checksum = "27444ea67d360508753022807cdd0b49a95c878924c9c5f8f32668b7d7768245" dependencies = [ "alloy-genesis", - "alloy-primitives 0.8.11", + "alloy-primitives", "k256", "rand", "serde_json", @@ -291,31 +362,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" -dependencies = [ - "alloy-rlp", - "bytes", - "cfg-if 1.0.0", - "const-hex", - "derive_more 0.99.18", - "hex-literal", - "itoa", - "k256", - "keccak-asm", - "proptest", - "rand", - "ruint", - "serde", - "tiny-keccak", -] - -[[package]] -name = "alloy-primitives" -version = "0.8.11" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd58d377699e6cfeab52c4a9d28bdc4ef37e2bd235ff2db525071fe37a2e9af5" +checksum = "3aeeb5825c2fc8c2662167058347cd0cafc3cb15bcb5cdb1758a63c2dca0409e" dependencies = [ "alloy-rlp", "bytes", @@ -341,54 +390,60 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.1.4" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c538bfa893d07e27cb4f3c1ab5f451592b7c526d511d62b576a2ce59e146e4a" +checksum = "4814d141ede360bb6cd1b4b064f1aab9de391e7c4d0d4d50ac89ea4bc1e25fbd" dependencies = [ "alloy-chains", "alloy-consensus", "alloy-eips", - "alloy-json-rpc 0.1.4", + "alloy-json-rpc", "alloy-network", - "alloy-primitives 0.7.7", + "alloy-network-primitives", + "alloy-primitives", "alloy-pubsub", - "alloy-rpc-client 0.1.4", + "alloy-rpc-client", "alloy-rpc-types-eth", - "alloy-transport 0.1.4", - "alloy-transport-http 0.1.4", + "alloy-transport", + "alloy-transport-http", + "alloy-transport-ipc", "alloy-transport-ws", "async-stream", "async-trait", "auto_impl", - "dashmap 5.5.3", + "dashmap", "futures", "futures-utils-wasm", "lru", + "parking_lot 0.12.3", "pin-project", "reqwest 0.12.9", + "schnellru", "serde", "serde_json", + "thiserror", "tokio", "tracing", "url", + "wasmtimer", ] [[package]] name = "alloy-pubsub" -version = "0.1.4" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a7341322d9bc0e49f6e9fd9f2eb8e30f73806f2dd12cbb3d6bab2694c921f87" +checksum = "96ba46eb69ddf7a9925b81f15229cb74658e6eebe5dd30a5b74e2cd040380573" dependencies = [ - "alloy-json-rpc 0.1.4", - "alloy-primitives 0.7.7", - "alloy-transport 0.1.4", + "alloy-json-rpc", + "alloy-primitives", + "alloy-transport", "bimap", "futures", "serde", "serde_json", "tokio", "tokio-stream", - "tower 0.4.13", + "tower 0.5.1", "tracing", ] @@ -416,40 +471,18 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "0.1.4" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ba31bae67773fd5a60020bea900231f8396202b7feca4d0c70c6b59308ab4a8" +checksum = "7fc2bd1e7403463a5f2c61e955bcc9d3072b63aa177442b0f9aa6a6d22a941e3" dependencies = [ - "alloy-json-rpc 0.1.4", - "alloy-primitives 0.7.7", + "alloy-json-rpc", + "alloy-primitives", "alloy-pubsub", - "alloy-transport 0.1.4", - "alloy-transport-http 0.1.4", + "alloy-transport", + "alloy-transport-http", + "alloy-transport-ipc", "alloy-transport-ws", "futures", - "hyper-util", - "pin-project", - "reqwest 0.12.9", - "serde", - "serde_json", - "tokio", - "tokio-stream", - "tower 0.4.13", - "tracing", - "url", -] - -[[package]] -name = "alloy-rpc-client" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "370143ed581aace6e663342d21d209c6b2e34ee6142f7d6675adb518deeaf0dc" -dependencies = [ - "alloy-json-rpc 0.4.2", - "alloy-primitives 0.8.11", - "alloy-transport 0.4.2", - "alloy-transport-http 0.4.2", - "futures", "pin-project", "reqwest 0.12.9", "serde", @@ -459,65 +492,77 @@ dependencies = [ "tower 0.5.1", "tracing", "url", + "wasmtimer", ] [[package]] name = "alloy-rpc-types" -version = "0.1.4" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "184a7a42c7ba9141cc9e76368356168c282c3bc3d9e5d78f3556bdfe39343447" +checksum = "eea9bf1abdd506f985a53533f5ac01296bcd6102c5e139bbc5d40bc468d2c916" dependencies = [ + "alloy-primitives", + "alloy-rpc-types-engine", "alloy-rpc-types-eth", - "alloy-serde 0.1.4", + "alloy-serde", + "serde", ] [[package]] -name = "alloy-rpc-types-eth" -version = "0.1.4" +name = "alloy-rpc-types-engine" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab4123ee21f99ba4bd31bfa36ba89112a18a500f8b452f02b35708b1b951e2b9" +checksum = "886d22d41992287a235af2f3af4299b5ced2bcafb81eb835572ad35747476946" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-rlp", - "alloy-serde 0.1.4", - "alloy-sol-types 0.7.7", - "itertools 0.13.0", + "alloy-serde", + "derive_more 1.0.0", + "jsonwebtoken 9.3.0", + "rand", "serde", - "serde_json", - "thiserror", + "strum", ] [[package]] -name = "alloy-serde" -version = "0.1.4" +name = "alloy-rpc-types-eth" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9416c52959e66ead795a11f4a86c248410e9e368a0765710e57055b8a1774dd6" +checksum = "00b034779a4850b4b03f5be5ea674a1cf7d746b2da762b34d1860ab45e48ca27" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-consensus", + "alloy-eips", + "alloy-network-primitives", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "alloy-sol-types", + "derive_more 1.0.0", + "itertools 0.13.0", "serde", "serde_json", ] [[package]] name = "alloy-serde" -version = "0.4.2" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dff0ab1cdd43ca001e324dc27ee0e8606bd2161d6623c63e0e0b8c4dfc13600" +checksum = "028e72eaa9703e4882344983cfe7636ce06d8cce104a78ea62fd19b46659efc4" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives", "serde", "serde_json", ] [[package]] name = "alloy-signer" -version = "0.1.4" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b33753c09fa1ad85e5b092b8dc2372f1e337a42e84b9b4cff9fede75ba4adb32" +checksum = "592c185d7100258c041afac51877660c7bf6213447999787197db4842f0e938e" dependencies = [ - "alloy-primitives 0.7.7", + "alloy-primitives", "async-trait", "auto_impl", "elliptic-curve", @@ -527,13 +572,13 @@ dependencies = [ [[package]] name = "alloy-signer-aws" -version = "0.1.4" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63ce17bfd5aa38e14b9c83b553d93c76e1bd5641a2db45f381f81619fd3e54ca" +checksum = "a406102908a4e51834f32c4e5c1b29aa2c407b3fd23a5cad129c28b56d85e1b8" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-signer", "async-trait", "aws-sdk-kms", @@ -545,13 +590,13 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "0.1.4" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dfc9c26fe6c6f1bad818c9a976de9044dd12e1f75f1f156a801ee3e8148c1b6" +checksum = "6614f02fc1d5b079b2a4a5320018317b506fd0a6d67c1fd5542a71201724986c" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-signer", "async-trait", "k256", @@ -561,26 +606,12 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b40397ddcdcc266f59f959770f601ce1280e699a91fc1862f29cef91707cd09" -dependencies = [ - "alloy-sol-macro-expander 0.7.7", - "alloy-sol-macro-input 0.7.7", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.87", -] - -[[package]] -name = "alloy-sol-macro" -version = "0.8.11" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a1b42ac8f45e2f49f4bcdd72cbfde0bb148f5481d403774ffa546e48b83efc1" +checksum = "5c0279d09463a4695788a3622fd95443625f7be307422deba4b55dd491a9c7a1" dependencies = [ - "alloy-sol-macro-expander 0.8.11", - "alloy-sol-macro-input 0.8.11", + "alloy-sol-macro-expander", + "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", @@ -589,30 +620,12 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.7.7" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "867a5469d61480fea08c7333ffeca52d5b621f5ca2e44f271b117ec1fc9a0525" +checksum = "4feea540fc8233df2ad1156efd744b2075372f43a8f942a68b3b19c8a00e2c12" dependencies = [ "alloy-json-abi", - "alloy-sol-macro-input 0.7.7", - "const-hex", - "heck 0.5.0", - "indexmap 2.6.0", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.87", - "syn-solidity 0.7.7", - "tiny-keccak", -] - -[[package]] -name = "alloy-sol-macro-expander" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06318f1778e57f36333e850aa71bd1bb5e560c10279e236622faae0470c50412" -dependencies = [ - "alloy-sol-macro-input 0.8.11", + "alloy-sol-macro-input", "const-hex", "heck 0.5.0", "indexmap 2.6.0", @@ -620,15 +633,15 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.87", - "syn-solidity 0.8.11", + "syn-solidity", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "0.7.7" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e482dc33a32b6fadbc0f599adea520bd3aaa585c141a80b404d0a3e3fa72528" +checksum = "2a0ad281f3d1b613af814b66977ee698e443d4644a1510962d0241f26e0e53ae" dependencies = [ "alloy-json-abi", "const-hex", @@ -638,29 +651,14 @@ dependencies = [ "quote", "serde_json", "syn 2.0.87", - "syn-solidity 0.7.7", -] - -[[package]] -name = "alloy-sol-macro-input" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaebb9b0ad61a41345a22c9279975c0cdd231b97947b10d7aad1cf0a7181e4a5" -dependencies = [ - "const-hex", - "dunce", - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.87", - "syn-solidity 0.8.11", + "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "0.7.7" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbcba3ca07cf7975f15d871b721fb18031eec8bce51103907f6dcce00b255d98" +checksum = "96eff16c797438add6c37bb335839d015b186c5421ee5626f5559a7bfeb38ef5" dependencies = [ "serde", "winnow", @@ -668,54 +666,24 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.7.7" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" +checksum = "cff34e0682d6665da243a3e81da96f07a2dd50f7e64073e382b1a141f5a2a2f6" dependencies = [ "alloy-json-abi", - "alloy-primitives 0.7.7", - "alloy-sol-macro 0.7.7", + "alloy-primitives", + "alloy-sol-macro", "const-hex", "serde", ] -[[package]] -name = "alloy-sol-types" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374d7fb042d68ddfe79ccb23359de3007f6d4d53c13f703b64fb0db422132111" -dependencies = [ - "alloy-primitives 0.8.11", - "alloy-sol-macro 0.8.11", - "const-hex", -] - [[package]] name = "alloy-transport" -version = "0.1.4" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01b51a291f949f755e6165c3ed562883175c97423703703355f4faa4b7d0a57c" +checksum = "be77579633ebbc1266ae6fd7694f75c408beb1aeb6865d0b18f22893c265a061" dependencies = [ - "alloy-json-rpc 0.1.4", - "base64 0.22.1", - "futures-util", - "futures-utils-wasm", - "serde", - "serde_json", - "thiserror", - "tokio", - "tower 0.4.13", - "tracing", - "url", -] - -[[package]] -name = "alloy-transport" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ac3e97dad3d31770db0fc89bd6a63b789fbae78963086733f960cf32c483904" -dependencies = [ - "alloy-json-rpc 0.4.2", + "alloy-json-rpc", "base64 0.22.1", "futures-util", "futures-utils-wasm", @@ -726,55 +694,60 @@ dependencies = [ "tower 0.5.1", "tracing", "url", + "wasmtimer", ] [[package]] name = "alloy-transport-http" -version = "0.1.4" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86d65871f9f1cafe1ed25cde2f1303be83e6473e995a2d56c275ae4fcce6119c" +checksum = "91fd1a5d0827939847983b46f2f79510361f901dc82f8e3c38ac7397af142c6e" dependencies = [ - "alloy-json-rpc 0.1.4", - "alloy-transport 0.1.4", + "alloy-json-rpc", + "alloy-transport", "http-body-util", "hyper 1.5.0", "hyper-util", "reqwest 0.12.9", "serde_json", - "tower 0.4.13", + "tower 0.5.1", "tracing", "url", ] [[package]] -name = "alloy-transport-http" -version = "0.4.2" +name = "alloy-transport-ipc" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b367dcccada5b28987c2296717ee04b9a5637aacd78eacb1726ef211678b5212" +checksum = "8073d1186bfeeb8fbdd1292b6f1a0731f3aed8e21e1463905abfae0b96a887a6" dependencies = [ - "alloy-json-rpc 0.4.2", - "alloy-transport 0.4.2", - "reqwest 0.12.9", + "alloy-json-rpc", + "alloy-pubsub", + "alloy-transport", + "bytes", + "futures", + "interprocess", + "pin-project", "serde_json", - "tower 0.5.1", + "tokio", + "tokio-util 0.7.12", "tracing", - "url", ] [[package]] name = "alloy-transport-ws" -version = "0.1.4" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aec83fd052684556c78c54df111433493267234d82321c2236560c752f595f20" +checksum = "61f27837bb4a1d6c83a28231c94493e814882f0e9058648a97e908a5f3fc9fcf" dependencies = [ "alloy-pubsub", - "alloy-transport 0.1.4", + "alloy-transport", "futures", "http 1.1.0", "rustls 0.23.16", "serde_json", "tokio", - "tokio-tungstenite 0.23.1", + "tokio-tungstenite 0.24.0", "tracing", "ws_stream_wasm", ] @@ -870,7 +843,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb00293ba84f51ce3bd026bd0de55899c4e68f0a39a5728cebae3a73ffdc0a4f" dependencies = [ - "ark-ec", + "ark-ec 0.4.2", "ark-ff 0.4.2", "ark-std 0.4.0", ] @@ -881,7 +854,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" dependencies = [ - "ark-ec", + "ark-ec 0.4.2", "ark-ff 0.4.2", "ark-serialize 0.4.2", "ark-std 0.4.0", @@ -893,11 +866,23 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" dependencies = [ - "ark-ec", + "ark-ec 0.4.2", "ark-ff 0.4.2", "ark-std 0.4.0", ] +[[package]] +name = "ark-bn254" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-r1cs-std", + "ark-std 0.5.0", +] + [[package]] name = "ark-ec" version = "0.4.2" @@ -905,7 +890,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" dependencies = [ "ark-ff 0.4.2", - "ark-poly", + "ark-poly 0.4.2", "ark-serialize 0.4.2", "ark-std 0.4.0", "derivative", @@ -915,6 +900,27 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash 0.8.11", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe 0.6.0", + "fnv", + "hashbrown 0.15.1", + "itertools 0.13.0", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "zeroize", +] + [[package]] name = "ark-ff" version = "0.3.0" @@ -953,6 +959,26 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec 0.7.6", + "digest 0.10.7", + "educe 0.6.0", + "itertools 0.13.0", + "num-bigint 0.4.6", + "num-traits", + "paste", + "zeroize", +] + [[package]] name = "ark-ff-asm" version = "0.3.0" @@ -973,6 +999,16 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.87", +] + [[package]] name = "ark-ff-macros" version = "0.3.0" @@ -998,6 +1034,19 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "ark-poly" version = "0.4.2" @@ -1011,6 +1060,50 @@ dependencies = [ "hashbrown 0.13.2", ] +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash 0.8.11", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe 0.6.0", + "fnv", + "hashbrown 0.15.1", +] + +[[package]] +name = "ark-r1cs-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "941551ef1df4c7a401de7068758db6503598e6f01850bdb2cfdb614a1f9dbea1" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-relations", + "ark-std 0.5.0", + "educe 0.6.0", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "tracing", +] + +[[package]] +name = "ark-relations" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec46ddc93e7af44bcab5230937635b06fb5744464dd6a7e7b083e80ebd274384" +dependencies = [ + "ark-ff 0.5.0", + "ark-std 0.5.0", + "tracing", + "tracing-subscriber 0.2.25", +] + [[package]] name = "ark-serialize" version = "0.3.0" @@ -1027,12 +1120,25 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" dependencies = [ - "ark-serialize-derive", + "ark-serialize-derive 0.4.2", "ark-std 0.4.0", "digest 0.10.7", "num-bigint 0.4.6", ] +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive 0.5.0", + "ark-std 0.5.0", + "arrayvec 0.7.6", + "digest 0.10.7", + "num-bigint 0.4.6", +] + [[package]] name = "ark-serialize-derive" version = "0.4.2" @@ -1044,6 +1150,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "ark-std" version = "0.3.0" @@ -1064,6 +1181,16 @@ dependencies = [ "rand", ] +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand", +] + [[package]] name = "array-bytes" version = "6.2.3" @@ -1932,17 +2059,17 @@ dependencies = [ "alloy-json-abi", "alloy-network", "alloy-node-bindings", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-provider", "alloy-pubsub", - "alloy-rpc-client 0.4.2", + "alloy-rpc-client", "alloy-rpc-types", "alloy-rpc-types-eth", "alloy-signer", "alloy-signer-local", - "alloy-sol-types 0.7.7", - "alloy-transport 0.1.4", - "alloy-transport-http 0.1.4", + "alloy-sol-types", + "alloy-transport", + "alloy-transport-http", "async-trait", "blueprint-build-utils", "blueprint-metadata", @@ -2006,12 +2133,12 @@ name = "blueprint-test-utils" version = "0.1.3" dependencies = [ "alloy-contract", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-provider", "alloy-rpc-types", "alloy-rpc-types-eth", - "alloy-sol-types 0.7.7", - "alloy-transport 0.1.4", + "alloy-sol-types", + "alloy-transport", "async-trait", "blueprint-manager", "cargo-tangle", @@ -2040,9 +2167,9 @@ dependencies = [ [[package]] name = "bollard" -version = "0.16.1" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aed08d3adb6ebe0eff737115056652670ae290f177759aac19c30456135f94c" +checksum = "d41711ad46fda47cd701f6908e59d1bd6b9a2b7464c0d0aeab95c6d37096ff8a" dependencies = [ "base64 0.22.1", "bollard-stubs", @@ -2055,12 +2182,12 @@ dependencies = [ "http-body-util", "hyper 1.5.0", "hyper-named-pipe", - "hyper-rustls 0.26.0", + "hyper-rustls 0.27.3", "hyper-util", - "hyperlocal-next", + "hyperlocal", "log", "pin-project-lite", - "rustls 0.22.4", + "rustls 0.23.16", "rustls-native-certs 0.7.3", "rustls-pemfile 2.2.0", "rustls-pki-types", @@ -2079,9 +2206,9 @@ dependencies = [ [[package]] name = "bollard-stubs" -version = "1.44.0-rc.2" +version = "1.45.0-rc.26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "709d9aa1c37abb89d40f19f5d0ad6f0d88cb1581264e571c9350fc5bb89cf1c5" +checksum = "6d7c5415e3a6bc6d3e99eff6268e488fd4ee25e7b28c10f08fa6760bd9de16e4" dependencies = [ "serde", "serde_repr", @@ -2987,19 +3114,6 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "dashmap" -version = "5.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" -dependencies = [ - "cfg-if 1.0.0", - "hashbrown 0.14.5", - "lock_api", - "once_cell", - "parking_lot_core 0.9.10", -] - [[package]] name = "dashmap" version = "6.1.0" @@ -3273,6 +3387,12 @@ dependencies = [ "serde_json", ] +[[package]] +name = "doctest-file" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" + [[package]] name = "dotenvy" version = "0.15.7" @@ -3403,45 +3523,50 @@ version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f0042ff8246a363dbe77d2ceedb073339e85a804b9a47636c6e016a9a32c05f" dependencies = [ - "enum-ordinalize", + "enum-ordinalize 3.1.15", "proc-macro2", "quote", "syn 1.0.109", ] +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize 4.3.0", + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "eigen-chainio-txmanager" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92a9242f761ef1403ada3fc268d5373b977c32cf755560019a211d881b343135" +checksum = "f9a1afdb6755ec5433df3262a8daedda48332b0a76ac33e6eee9674217de31c7" dependencies = [ - "alloy-eips", - "alloy-network", - "alloy-primitives 0.7.7", - "alloy-provider", - "alloy-rpc-types-eth", - "alloy-signer-local", - "alloy-transport-http 0.1.4", + "alloy", + "async-trait", "eigen-logging", "eigen-signer", - "k256", "reqwest 0.12.9", "thiserror", + "tokio", ] [[package]] name = "eigen-client-avsregistry" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b545b7b3bb97aa6f769fa329c43e121d3d3ef2c700528c51493d14b7ca4c2b" +checksum = "8faded1cc32df98d1b5a21e84b1ee880d49737a440f3a37b15014b5739518ec4" dependencies = [ - "alloy-contract", - "alloy-primitives 0.7.7", - "alloy-provider", - "alloy-rpc-types", + "alloy", + "alloy-primitives", "alloy-signer", "alloy-signer-local", - "ark-ff 0.4.2", + "ark-ff 0.5.0", "async-trait", "eigen-client-elcontracts", "eigen-crypto-bls", @@ -3455,12 +3580,12 @@ dependencies = [ [[package]] name = "eigen-client-elcontracts" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46b72f6b15b8e641b4b43c1dced1df39cd1b4bcc6ce943ab1ce2280cba6e486f" +checksum = "eed13dd5094cce050ecf008dbd343c346df3389f42a2952c285ddf10f5268adc" dependencies = [ - "alloy-contract", - "alloy-primitives 0.7.7", + "alloy", + "alloy-primitives", "eigen-logging", "eigen-types", "eigen-utils", @@ -3470,21 +3595,14 @@ dependencies = [ [[package]] name = "eigen-client-eth" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc00e0508a9137355212339d6bc0b83b3ceb7dc4f541ec920e66171295bd9c3" +checksum = "6609855a64edcd14163756a960a3208163948c723175719e9c30e8e619526a78" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-json-rpc 0.1.4", - "alloy-primitives 0.7.7", - "alloy-provider", - "alloy-pubsub", + "alloy", + "alloy-json-rpc", + "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-transport 0.1.4", - "alloy-transport-http 0.1.4", - "alloy-transport-ws", "async-trait", "eigen-logging", "eigen-metrics-collectors-rpc-calls", @@ -3495,14 +3613,12 @@ dependencies = [ [[package]] name = "eigen-client-fireblocks" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0327abf48cd09e672456be65e640ee609d23a1989ea1d310b0585e333829f124" +checksum = "eb4110a3c0ff4903974f94475ba21875d2b75a120df9a561b3e6b815e353bff5" dependencies = [ - "alloy-contract", - "alloy-primitives 0.7.7", - "alloy-provider", - "alloy-rpc-types", + "alloy", + "alloy-primitives", "chrono", "eigen-utils", "hex", @@ -3517,23 +3633,17 @@ dependencies = [ "uuid 1.11.0", ] -[[package]] -name = "eigen-contract-bindings" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0a99d2a3c6b116d4013121fc20ff2a2f4e884475f6327c7d8300b175683fcb4" - [[package]] name = "eigen-crypto-bls" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4016b25de0e41e5f4a8b8c495cef35cbdf5d1946021b472a0ce10b656956465f" +checksum = "f7fa1f9a04c2cfdab287badf6ac7f99d5fab99231ab19f920dbc61ab922e4fdc" dependencies = [ - "alloy-primitives 0.7.7", - "ark-bn254", - "ark-ec", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", + "alloy-primitives", + "ark-bn254 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", "ark-std 0.4.0", "eigen-crypto-bn254", "eigen-utils", @@ -3543,22 +3653,22 @@ dependencies = [ [[package]] name = "eigen-crypto-bn254" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab240b582aa622c9a94e12bc7ac6fb65380b85053e1b0db08c8478c618a84a0" +checksum = "67916fff33bfbc764ee870402865cb012344ec018c1dc49e33b60aec25222aa5" dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff 0.4.2", + "ark-bn254 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", "num-bigint 0.4.6", "rust-bls-bn254", ] [[package]] name = "eigen-logging" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "858b74ed2efc43af7de8db0f04e7c5d5b348aa8755c1a9000eb03d36f442c690" +checksum = "c8ff51bd9b55c968bbbaf2e6bc415542d955b86ea8c0ab83f7159c6c4b158899" dependencies = [ "ctor", "once_cell", @@ -3568,9 +3678,9 @@ dependencies = [ [[package]] name = "eigen-metrics" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e0fbdbdb429d03ff6f0be07abe4d58a942d6069328f7827938ca57157766df" +checksum = "d22178cb190cf58bc77e503c8184a314bb43ca3194242e55c9f93c117fd77f1c" dependencies = [ "eigen-logging", "metrics", @@ -3580,9 +3690,9 @@ dependencies = [ [[package]] name = "eigen-metrics-collectors-rpc-calls" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67563f8a7d1e242f8cab846729a4fec5d299c2e57abea66732400749c265ab92" +checksum = "d3f071554a554ac35af3a1227c1e0170cae3fdab8e069cff71332a779e62ef77" dependencies = [ "eigen-logging", "metrics", @@ -3590,9 +3700,9 @@ dependencies = [ [[package]] name = "eigen-nodeapi" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d53c0275e3e0c8afc1358c0a3d1c781ac9815aadb0463a7d8e8cdc832569dca" +checksum = "09a4ee50d72d4763ebded9f318e7cb2790dc9fa024f4a5296d50fd18c556e32d" dependencies = [ "ntex", "serde", @@ -3603,13 +3713,13 @@ dependencies = [ [[package]] name = "eigen-services-avsregistry" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b8a3bf7010289fcac159db5a5d89fb3879236ac3c84e7c389366269d512c1da" +checksum = "6b41769e9b1de84767d46cafe7409a01cef1304bd7bb58988a23df7f43806825" dependencies = [ - "alloy-primitives 0.7.7", - "ark-bn254", - "ark-ec", + "alloy-primitives", + "ark-bn254 0.5.0", + "ark-ec 0.5.0", "async-trait", "eigen-client-avsregistry", "eigen-crypto-bls", @@ -3620,13 +3730,14 @@ dependencies = [ [[package]] name = "eigen-services-blsaggregation" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ccce420984d12deb996b6d85580f0080e5b8f6dc10c8858622c24f23953453b" +checksum = "e6f4e5111c81b6af5b9e58dde7799af47a1049f45498570ceeddae1aa3fc3358" dependencies = [ - "alloy-primitives 0.7.7", - "ark-bn254", - "ark-ec", + "alloy", + "alloy-primitives", + "ark-bn254 0.5.0", + "ark-ec 0.5.0", "eigen-client-avsregistry", "eigen-crypto-bls", "eigen-crypto-bn254", @@ -3641,20 +3752,20 @@ dependencies = [ [[package]] name = "eigen-services-operatorsinfo" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc37b203588165d466fbff505e474b7fdfd4bfdd9095171f171209aeaf57919d" +checksum = "dcb39b05512d12def60ac6a270dfcb8dd84aabce8c349b2da020a2a4c79b15b4" dependencies = [ - "alloy-primitives 0.7.7", - "alloy-provider", - "alloy-rpc-types", - "anyhow", + "alloy", + "alloy-primitives", "async-trait", "eigen-client-avsregistry", "eigen-crypto-bls", "eigen-logging", "eigen-types", "eigen-utils", + "eyre", + "futures", "futures-util", "thiserror", "tokio", @@ -3663,14 +3774,14 @@ dependencies = [ [[package]] name = "eigen-signer" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e981bde69979d705dbac089181df625f7e54ec01898983a8a1d8d1144b67b83b" +checksum = "bb30fbc0c6b2f69c4e019271c23ec283de70d21867e1a571ec17d20c43ff8800" dependencies = [ - "alloy-consensus", + "alloy", "alloy-network", - "alloy-primitives 0.7.7", - "alloy-rpc-client 0.1.4", + "alloy-primitives", + "alloy-rpc-client", "alloy-signer", "alloy-signer-aws", "alloy-signer-local", @@ -3684,30 +3795,28 @@ dependencies = [ [[package]] name = "eigen-testing-utils" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54b14a2ba9fbb5585ce0b3170243db2dfc551383ea7a46114a2c3f748da4515a" +checksum = "34751537d6988f59d65d028aa5449782da493df9048b4d0e1e576f2cb99628ac" dependencies = [ - "alloy-network", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-provider", - "alloy-transport-http 0.1.4", + "alloy-rpc-types", + "alloy-transport", "eigen-utils", - "once_cell", "serde", "serde_json", "testcontainers", - "tokio", + "url", ] [[package]] name = "eigen-types" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59467c722b271730a065a401002a6d3e7f6861233cf6241fda3a94bf863b4d74" +checksum = "299b4a3f5ae7b480e3856cf4ca18b4b491180c853fa81888de1191d783ef88f3" dependencies = [ - "alloy-primitives 0.7.7", - "ark-serialize 0.4.2", + "alloy-primitives", "eigen-crypto-bls", "ethers", "num-bigint 0.4.6", @@ -3717,34 +3826,25 @@ dependencies = [ [[package]] name = "eigen-utils" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "781a0d9bc2ab3d3709a1d6b23dfca5c2ef2da29b38f10a04bf7f1991bb53293e" +checksum = "29d11ac71ae9058ecb7a27532f0db4f3736e2a6c07dfd83cfae850c8ce68d236" dependencies = [ - "alloy-contract", - "alloy-json-rpc 0.1.4", - "alloy-network", - "alloy-provider", - "alloy-pubsub", - "alloy-signer-local", - "alloy-sol-types 0.7.7", - "alloy-transport 0.1.4", - "alloy-transport-http 0.1.4", + "alloy", "reqwest 0.12.9", ] [[package]] name = "eigensdk" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8683d526d79c3d8deaed773e0dd9a18383e0f710fa2d182615142ce26b448338" +checksum = "7673b2d1450528e49d11cabaeed3838e325201b6f400bd3a23998eee3512119d" dependencies = [ "eigen-chainio-txmanager", "eigen-client-avsregistry", "eigen-client-elcontracts", "eigen-client-eth", "eigen-client-fireblocks", - "eigen-contract-bindings", "eigen-crypto-bls", "eigen-crypto-bn254", "eigen-logging", @@ -3861,6 +3961,26 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "enum-ordinalize" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "env_filter" version = "0.1.2" @@ -4386,6 +4506,18 @@ dependencies = [ "winapi", ] +[[package]] +name = "filetime" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "libredox", + "windows-sys 0.59.0", +] + [[package]] name = "finito" version = "0.1.0" @@ -4778,7 +4910,7 @@ version = "0.2.2" dependencies = [ "alloy-network", "alloy-provider", - "alloy-transport 0.1.4", + "alloy-transport", "gadget-sdk", "proc-macro2", "quote", @@ -4822,18 +4954,18 @@ dependencies = [ "alloy-contract", "alloy-json-abi", "alloy-network", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-provider", "alloy-rpc-types", "alloy-signer", "alloy-signer-local", - "alloy-sol-types 0.7.7", - "alloy-transport 0.1.4", - "alloy-transport-http 0.1.4", - "ark-bn254", - "ark-ec", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", + "alloy-sol-types", + "alloy-transport", + "alloy-transport-http", + "ark-bn254 0.4.0", + "ark-ec 0.4.2", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", "async-trait", "auto_impl", "backon", @@ -4841,7 +4973,7 @@ dependencies = [ "bollard", "clap", "color-eyre", - "dashmap 6.1.0", + "dashmap", "ed25519-zebra 4.0.3", "eigensdk", "elliptic-curve", @@ -5716,25 +5848,6 @@ dependencies = [ "tokio-rustls 0.24.1", ] -[[package]] -name = "hyper-rustls" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c" -dependencies = [ - "futures-util", - "http 1.1.0", - "hyper 1.5.0", - "hyper-util", - "log", - "rustls 0.22.4", - "rustls-native-certs 0.7.3", - "rustls-pki-types", - "tokio", - "tokio-rustls 0.25.0", - "tower-service", -] - [[package]] name = "hyper-rustls" version = "0.27.3" @@ -5745,14 +5858,12 @@ dependencies = [ "http 1.1.0", "hyper 1.5.0", "hyper-util", - "log", "rustls 0.23.16", "rustls-native-certs 0.8.0", "rustls-pki-types", "tokio", "tokio-rustls 0.26.0", "tower-service", - "webpki-roots 0.26.6", ] [[package]] @@ -5804,10 +5915,10 @@ dependencies = [ ] [[package]] -name = "hyperlocal-next" -version = "0.9.0" +name = "hyperlocal" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acf569d43fa9848e510358c07b80f4adf34084ddc28c6a4a651ee8474c070dcc" +checksum = "986c5ce3b994526b3cd75578e62554abd09f0899d6206de48b3e96ab34ccc8c7" dependencies = [ "hex", "http-body-util", @@ -6102,9 +6213,9 @@ dependencies = [ name = "incredible-squaring-blueprint" version = "0.1.1" dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff 0.4.2", + "ark-bn254 0.4.0", + "ark-ec 0.4.2", + "ark-ff 0.5.0", "async-trait", "blueprint-metadata", "color-eyre", @@ -6132,20 +6243,20 @@ dependencies = [ "alloy-contract", "alloy-json-abi", "alloy-network", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-provider", "alloy-pubsub", - "alloy-rpc-client 0.4.2", + "alloy-rpc-client", "alloy-rpc-types", "alloy-rpc-types-eth", "alloy-signer", "alloy-signer-local", - "alloy-sol-types 0.7.7", - "alloy-transport 0.1.4", - "alloy-transport-http 0.1.4", - "ark-bn254", - "ark-ec", - "ark-ff 0.4.2", + "alloy-sol-types", + "alloy-transport", + "alloy-transport-http", + "ark-bn254 0.4.0", + "ark-ec 0.4.2", + "ark-ff 0.5.0", "async-trait", "bip39", "blueprint-build-utils", @@ -6186,20 +6297,20 @@ dependencies = [ "alloy-contract", "alloy-json-abi", "alloy-network", - "alloy-primitives 0.7.7", + "alloy-primitives", "alloy-provider", "alloy-pubsub", - "alloy-rpc-client 0.4.2", + "alloy-rpc-client", "alloy-rpc-types", "alloy-rpc-types-eth", "alloy-signer", "alloy-signer-local", - "alloy-sol-types 0.7.7", - "alloy-transport 0.1.4", - "alloy-transport-http 0.1.4", - "ark-bn254", - "ark-ec", - "ark-ff 0.4.2", + "alloy-sol-types", + "alloy-transport", + "alloy-transport-http", + "ark-bn254 0.4.0", + "ark-ec 0.4.2", + "ark-ff 0.5.0", "async-trait", "blueprint-build-utils", "blueprint-metadata", @@ -6299,6 +6410,21 @@ dependencies = [ "num-traits", ] +[[package]] +name = "interprocess" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "894148491d817cb36b6f778017b8ac46b17408d522dd90f539d677ea938362eb" +dependencies = [ + "doctest-file", + "futures-core", + "libc", + "recvmsg", + "tokio", + "widestring", + "windows-sys 0.52.0", +] + [[package]] name = "io-lifetimes" version = "1.0.11" @@ -6680,6 +6806,21 @@ dependencies = [ "simple_asn1 0.6.2", ] +[[package]] +name = "jsonwebtoken" +version = "9.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f" +dependencies = [ + "base64 0.21.7", + "js-sys", + "pem 3.0.4", + "ring 0.17.8", + "serde", + "serde_json", + "simple_asn1 0.6.2", +] + [[package]] name = "k256" version = "0.13.4" @@ -7330,6 +7471,7 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.6.0", "libc", + "redox_syscall 0.5.7", ] [[package]] @@ -7640,9 +7782,9 @@ dependencies = [ [[package]] name = "metrics" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884adb57038347dfbaf2d5065887b6cf4312330dc8e94bc30a1a839bd79d3261" +checksum = "7a7deb012b3b2767169ff203fadb4c6b0b82b947512e5eb9e0b78c2e186ad9e3" dependencies = [ "ahash 0.8.11", "portable-atomic", @@ -7650,9 +7792,9 @@ dependencies = [ [[package]] name = "metrics-exporter-prometheus" -version = "0.15.3" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f0c8427b39666bf970460908b213ec09b3b350f20c0c2eabcbba51704a08e6" +checksum = "85b6f8152da6d7892ff1b7a1c0fa3f435e92b5918ad67035c3bb432111d9a29b" dependencies = [ "base64 0.22.1", "http-body-util", @@ -7671,17 +7813,16 @@ dependencies = [ [[package]] name = "metrics-util" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4259040465c955f9f2f1a4a8a16dc46726169bca0f88e8fb2dbeced487c3e828" +checksum = "15b482df36c13dd1869d73d14d28cd4855fbd6cfc32294bee109908a9f4a4ed7" dependencies = [ "aho-corasick", "crossbeam-epoch", "crossbeam-utils", - "hashbrown 0.14.5", + "hashbrown 0.15.1", "indexmap 2.6.0", "metrics", - "num_cpus", "ordered-float", "quanta", "radix_trie", @@ -8848,7 +8989,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f710afd11c9711b04f97ab61bb9747d5a04562fdf0f9f44abc3de92490084982" dependencies = [ - "educe", + "educe 0.4.23", ] [[package]] @@ -9503,6 +9644,12 @@ dependencies = [ "wasm-bindgen-futures", ] +[[package]] +name = "recvmsg" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" + [[package]] name = "redox_syscall" version = "0.2.16" @@ -9512,6 +9659,15 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "redox_syscall" version = "0.5.7" @@ -9672,7 +9828,6 @@ dependencies = [ "futures-core", "futures-util", "h2 0.4.6", - "hickory-resolver", "http 1.1.0", "http-body 1.0.1", "http-body-util", @@ -9688,11 +9843,7 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "quinn", - "rustls 0.23.16", - "rustls-native-certs 0.8.0", "rustls-pemfile 2.2.0", - "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", @@ -9700,13 +9851,11 @@ dependencies = [ "system-configuration 0.6.1", "tokio", "tokio-native-tls", - "tokio-rustls 0.26.0", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 0.26.6", "windows-registry", ] @@ -9911,16 +10060,16 @@ checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" [[package]] name = "rust-bls-bn254" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24ee74e41c4bdfb5720a8d5743e089cb7c7b3ea7dfed73de1fe0a02c5fe744f9" +checksum = "84ab37c09dbee7ec3b610ecd703c6a79708aef66d52052ee7bfec0bbb9e7a8cd" dependencies = [ "aes", - "ark-bn254", - "ark-ec", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", + "ark-bn254 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", "ctr", "hex", "hkdf", @@ -10909,9 +11058,9 @@ checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "sketches-ddsketch" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85636c14b73d81f541e525f585c0a2109e6744e1565b5c1668e31c70c10ed65c" +checksum = "c1e9a774a6c28142ac54bb25d25562e6bcf957493a184f15ad4eebccb23e410a" [[package]] name = "slab" @@ -11999,12 +12148,12 @@ dependencies = [ [[package]] name = "symbiotic-rs" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02f31217207638b7cba9751cedb9ddb612478423d7bf8700091cf1f9970bbc5f" +checksum = "710f217361c13c427c851164e0996f3bb0907be5d8889acbe3b6c15318a3a84c" dependencies = [ "alloy-contract", - "alloy-sol-types 0.7.7", + "alloy-sol-types", "serde", ] @@ -12032,21 +12181,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c837dc8852cb7074e46b444afb81783140dab12c58867b49fb3898fbafedf7ea" -dependencies = [ - "paste", - "proc-macro2", - "quote", - "syn 2.0.87", -] - -[[package]] -name = "syn-solidity" -version = "0.8.11" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edf42e81491fb8871b74df3d222c64ae8cbc1269ea509fa768a3ed3e1b0ac8cb" +checksum = "6bdaa7b9e815582ba343a20c66627437cf45f1c6fba7f69772cbfd1358c7e197" dependencies = [ "paste", "proc-macro2", @@ -12234,29 +12371,29 @@ dependencies = [ [[package]] name = "testcontainers" -version = "0.20.1" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "725cbe485aafddfd8b2d01665937c95498d894c07fabd9c4e06a53c7da4ccc56" +checksum = "5f40cc2bd72e17f328faf8ca7687fe337e61bccd8acf9674fa78dd3792b045e1" dependencies = [ "async-trait", "bollard", "bollard-stubs", "bytes", - "dirs", "docker_credential", "either", + "etcetera", "futures", "log", "memchr", "parse-display", "pin-project-lite", - "reqwest 0.12.9", "serde", "serde_json", "serde_with", "thiserror", "tokio", "tokio-stream", + "tokio-tar", "tokio-util 0.7.12", "url", ] @@ -12467,6 +12604,21 @@ dependencies = [ "tokio-util 0.7.12", ] +[[package]] +name = "tokio-tar" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d5714c010ca3e5c27114c1cdeb9d14641ace49874aa5626d7149e47aedace75" +dependencies = [ + "filetime", + "futures-core", + "libc", + "redox_syscall 0.3.5", + "tokio", + "tokio-stream", + "xattr", +] + [[package]] name = "tokio-tungstenite" version = "0.20.1" @@ -12484,9 +12636,9 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.23.1" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6989540ced10490aaf14e6bad2e3d33728a2813310a0c71d1574304c49631cd" +checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9" dependencies = [ "futures-util", "log", @@ -12494,7 +12646,7 @@ dependencies = [ "rustls-pki-types", "tokio", "tokio-rustls 0.26.0", - "tungstenite 0.23.0", + "tungstenite 0.24.0", "webpki-roots 0.26.6", ] @@ -12820,9 +12972,9 @@ dependencies = [ [[package]] name = "tungstenite" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e2ce1e47ed2994fd43b04c8f618008d4cabdd5ee34027cf14f9d918edd9c8" +checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" dependencies = [ "byteorder", "bytes", @@ -13096,10 +13248,10 @@ checksum = "70a3028804c8bbae2a97a15b71ffc0e308c4b01a520994aafa77d56e94e19024" dependencies = [ "ark-bls12-377", "ark-bls12-381", - "ark-ec", + "ark-ec 0.4.2", "ark-ff 0.4.2", "ark-serialize 0.4.2", - "ark-serialize-derive", + "ark-serialize-derive 0.4.2", "arrayref", "constcat", "digest 0.10.7", @@ -13922,6 +14074,17 @@ dependencies = [ "time", ] +[[package]] +name = "xattr" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" +dependencies = [ + "libc", + "linux-raw-sys 0.4.14", + "rustix 0.38.39", +] + [[package]] name = "xml-rs" version = "0.8.22" diff --git a/Cargo.toml b/Cargo.toml index 9d83e536..051f38d3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -92,7 +92,7 @@ auto_impl = "1.2.0" backon = { version = "1.2.0", default-features = false } bincode = "1.3.3" bip39 = "2.1.0" -bollard = "0.16.1" +bollard = "0.17" cargo-generate = { version = "0.21.3", default-features = false } cfg-if = "1.0.0" clap = "4.5.16" @@ -159,28 +159,28 @@ jsonrpc-http-server = "18.0.0" tempfile = "3.10.1" cargo_toml = { version = "0.20.5" } -alloy-primitives = "0.7.2" -alloy-json-abi = "0.7.2" -alloy-sol-types = "0.7.2" -alloy-rpc-client = "0.4.2" -alloy-rpc-types = { version = "0.1" } -alloy-rpc-types-eth = { version = "0.1" } -alloy-provider = { version = "0.1", default-features = false, features = ["reqwest", "ws"] } -alloy-pubsub = { version = "0.1" } -alloy-signer = { version = "0.1" } -alloy-signer-local = { version = "0.1" } -alloy-network = { version = "0.1" } -alloy-node-bindings = "0.4.2" -alloy-contract = { version = "0.1" } -alloy-consensus = { version = "0.1" } -alloy-transport = { version = "0.1" } -alloy-transport-http = { version = "0.1" } +alloy-primitives = "0.8.12" +alloy-json-abi = "0.8.12" +alloy-sol-types = "0.8.12" +alloy-rpc-client = "0.5" +alloy-rpc-types = { version = "0.5" } +alloy-rpc-types-eth = { version = "0.5" } +alloy-provider = { version = "0.5", default-features = false, features = ["reqwest", "ws"] } +alloy-pubsub = { version = "0.5" } +alloy-signer = { version = "0.5" } +alloy-signer-local = { version = "0.5" } +alloy-network = { version = "0.5" } +alloy-node-bindings = "0.5" +alloy-contract = { version = "0.5" } +alloy-consensus = { version = "0.5" } +alloy-transport = { version = "0.5" } +alloy-transport-http = { version = "0.5" } ark-bn254 = "0.4.0" ark-ec = "0.4.0" -ark-ff = "0.4.0" +ark-ff = "0.5.0" ark-std = "0.4.0" -ark-serialize = "0.4.0" +ark-serialize = "0.5.0" # WebAssembly js-sys = "0.3.70" @@ -192,11 +192,11 @@ wasmtimer = "0.2" secp256k1 = "0.29.1" # Eigenlayer -eigensdk = { version = "0.1.0", features = ["full", "utils", "types"] } -testcontainers = { version = "0.20.1" } +eigensdk = { version = "0.1.1", default-features = false } +testcontainers = { version = "0.23.1" } # Symbiotic -symbiotic-rs = { version = "0.1.0" } +symbiotic-rs = { version = "0.1.1" } dashmap = "6.1.0" lru-mem = "0.3.0" diff --git a/blueprint-test-utils/src/eigenlayer_test_env.rs b/blueprint-test-utils/src/eigenlayer_test_env.rs index 0207af89..50558438 100644 --- a/blueprint-test-utils/src/eigenlayer_test_env.rs +++ b/blueprint-test-utils/src/eigenlayer_test_env.rs @@ -2,6 +2,7 @@ use crate::anvil; pub use crate::binding::ipauserregistry::PauserRegistry; pub use crate::binding::registrycoordinator::RegistryCoordinator; pub use crate::helpers::get_receipt; +use alloy_primitives::Uint; pub use alloy_primitives::{address, Address, Bytes, U256}; pub use alloy_provider::Provider; pub use gadget_sdk::config::protocol::EigenlayerContractAddresses; @@ -125,13 +126,13 @@ pub async fn setup_eigenlayer_test_environment( }; let strategy_params = RegistryCoordinator::StrategyParams { strategy: erc20_mock_address, - multiplier: 1, + multiplier: Uint::from(1), }; info!("Creating Quorum"); let _receipt = get_receipt(registry_coordinator.createQuorum( operator_set_params, - 0, + Uint::from(0), vec![strategy_params], )) .await @@ -149,6 +150,7 @@ pub async fn setup_eigenlayer_test_environment( delegation_manager_address, strategy_manager_address, avs_directory_address: Default::default(), + rewards_coordinator_address: Default::default(), }, pauser_registry_address, } diff --git a/blueprint-test-utils/src/helpers.rs b/blueprint-test-utils/src/helpers.rs index 79074163..40309f35 100644 --- a/blueprint-test-utils/src/helpers.rs +++ b/blueprint-test-utils/src/helpers.rs @@ -29,6 +29,9 @@ pub enum BlueprintError { #[error("Contract error occurred: {0}")] ContractError(#[from] alloy_contract::Error), + + #[error("{0}")] + Transaction(#[from] alloy_provider::PendingTransactionError), } pub struct BlueprintProcess { diff --git a/blueprints/examples/src/eigen_context.rs b/blueprints/examples/src/eigen_context.rs index 85d5c78a..aa1eb7c8 100644 --- a/blueprints/examples/src/eigen_context.rs +++ b/blueprints/examples/src/eigen_context.rs @@ -1,3 +1,4 @@ +use alloy_primitives::U256; use alloy_primitives::{address, Address, Bytes}; use color_eyre::eyre::eyre; use gadget_sdk::event_listener::evm::contracts::EvmContractEventListener; @@ -88,7 +89,6 @@ pub async fn handle_job( let stake_in_quorums_at_block = ctx .get_operator_stake_in_quorums_at_block(block_number, Bytes::from(vec![0])) .await?; - println!("Stake in Quorums at Block: {:?}", stake_in_quorums_at_block); assert!(!stake_in_quorums_at_block.is_empty()); // Get an Operator's stake in Quorums at the current block. diff --git a/blueprints/incredible-squaring-eigenlayer/src/contexts/aggregator.rs b/blueprints/incredible-squaring-eigenlayer/src/contexts/aggregator.rs index dcde2585..b0efffb2 100644 --- a/blueprints/incredible-squaring-eigenlayer/src/contexts/aggregator.rs +++ b/blueprints/incredible-squaring-eigenlayer/src/contexts/aggregator.rs @@ -1,9 +1,9 @@ -use crate::{ - contexts::client::SignedTaskResponse, - IncredibleSquaringTaskManager::{ - self, G1Point, G2Point, NonSignerStakesAndSignature, TaskResponse, - }, -}; +use crate::IBLSSignatureChecker::NonSignerStakesAndSignature; +use crate::IIncredibleSquaringTaskManager::Task; +use crate::IIncredibleSquaringTaskManager::TaskResponse; +use crate::BN254::G1Point; +use crate::BN254::G2Point; +use crate::{contexts::client::SignedTaskResponse, IncredibleSquaringTaskManager}; use alloy_network::{Ethereum, NetworkWallet}; use alloy_primitives::keccak256; use alloy_sol_types::SolType; @@ -26,7 +26,6 @@ use tokio::sync::{oneshot, Mutex, Notify}; use tokio::task::JoinHandle; use tokio::time::interval; -use crate::IncredibleSquaringTaskManager::Task; use alloy_network::EthereumWallet; use alloy_primitives::{Address, Bytes}; use eigensdk::client_avsregistry::reader::AvsRegistryChainReader; diff --git a/blueprints/incredible-squaring-eigenlayer/src/contexts/client.rs b/blueprints/incredible-squaring-eigenlayer/src/contexts/client.rs index b4e73d64..952f1815 100644 --- a/blueprints/incredible-squaring-eigenlayer/src/contexts/client.rs +++ b/blueprints/incredible-squaring-eigenlayer/src/contexts/client.rs @@ -7,7 +7,7 @@ use serde_json::json; use tokio::time::{sleep, Duration}; use tracing::{debug, info}; -use crate::IncredibleSquaringTaskManager::TaskResponse; +use crate::IIncredibleSquaringTaskManager::TaskResponse; const MAX_RETRIES: u32 = 5; const INITIAL_RETRY_DELAY: Duration = Duration::from_secs(1); diff --git a/blueprints/incredible-squaring-eigenlayer/src/jobs/compute_x_square.rs b/blueprints/incredible-squaring-eigenlayer/src/jobs/compute_x_square.rs index ae05883b..9bce85ae 100644 --- a/blueprints/incredible-squaring-eigenlayer/src/jobs/compute_x_square.rs +++ b/blueprints/incredible-squaring-eigenlayer/src/jobs/compute_x_square.rs @@ -1,6 +1,7 @@ #![allow(dead_code)] use crate::contexts::client::SignedTaskResponse; use crate::contexts::x_square::EigenSquareContext; +use crate::IIncredibleSquaringTaskManager::TaskResponse; use crate::{IncredibleSquaringTaskManager, INCREDIBLE_SQUARING_TASK_MANAGER_ABI_STRING}; use alloy_primitives::keccak256; use alloy_primitives::{Bytes, U256}; @@ -13,7 +14,6 @@ use gadget_sdk::event_listener::evm::contracts::EvmContractEventListener; use gadget_sdk::keystore::BackendExt; use gadget_sdk::{error, info, job}; use std::{convert::Infallible, ops::Deref}; -use IncredibleSquaringTaskManager::TaskResponse; /// Sends a signed task response to the BLS Aggregator. /// diff --git a/blueprints/incredible-squaring-eigenlayer/src/jobs/initialize_task.rs b/blueprints/incredible-squaring-eigenlayer/src/jobs/initialize_task.rs index 6eb95087..f23b6a31 100644 --- a/blueprints/incredible-squaring-eigenlayer/src/jobs/initialize_task.rs +++ b/blueprints/incredible-squaring-eigenlayer/src/jobs/initialize_task.rs @@ -1,3 +1,4 @@ +use crate::IIncredibleSquaringTaskManager::Task; use crate::{ contexts::aggregator::AggregatorContext, IncredibleSquaringTaskManager, INCREDIBLE_SQUARING_TASK_MANAGER_ABI_STRING, @@ -5,7 +6,6 @@ use crate::{ use gadget_sdk::event_listener::evm::contracts::EvmContractEventListener; use gadget_sdk::{info, job}; use std::{convert::Infallible, ops::Deref}; -use IncredibleSquaringTaskManager::Task; const TASK_CHALLENGE_WINDOW_BLOCK: u32 = 100; const BLOCK_TIME_SECONDS: u32 = 12; diff --git a/blueprints/incredible-squaring-eigenlayer/src/lib.rs b/blueprints/incredible-squaring-eigenlayer/src/lib.rs index 1b90d76d..6f81a104 100644 --- a/blueprints/incredible-squaring-eigenlayer/src/lib.rs +++ b/blueprints/incredible-squaring-eigenlayer/src/lib.rs @@ -29,11 +29,3 @@ sol!( PauserRegistry, "./contracts/out/IPauserRegistry.sol/IPauserRegistry.json" ); - -sol!( - #[allow(missing_docs, clippy::too_many_arguments)] - #[sol(rpc)] - #[derive(Debug)] - RegistryCoordinator, - "./contracts/out/RegistryCoordinator.sol/RegistryCoordinator.json" -); diff --git a/blueprints/incredible-squaring-eigenlayer/src/tests.rs b/blueprints/incredible-squaring-eigenlayer/src/tests.rs index a6d9a5fd..bc5f5955 100644 --- a/blueprints/incredible-squaring-eigenlayer/src/tests.rs +++ b/blueprints/incredible-squaring-eigenlayer/src/tests.rs @@ -8,6 +8,7 @@ use crate::IncredibleSquaringTaskManager; use alloy_network::EthereumWallet; use alloy_provider::Provider; use alloy_signer_local::PrivateKeySigner; +use alloy_sol_types::sol; use blueprint_test_utils::eigenlayer_test_env::*; use blueprint_test_utils::{ eigenlayer_test_env::start_default_anvil_testnet, helpers::wait_for_responses, @@ -22,6 +23,14 @@ use gadget_sdk::utils::evm::get_wallet_provider_http; use reqwest::Url; use std::path::Path; +sol!( + #[allow(missing_docs, clippy::too_many_arguments)] + #[sol(rpc)] + #[derive(Debug)] + RegistryCoordinator, + "./contracts/out/RegistryCoordinator.sol/RegistryCoordinator.json" +); + const ANVIL_STATE_PATH: &str = "./blueprint-test-utils/anvil/deployed_anvil_states/testnet_state.json"; diff --git a/blueprints/incredible-squaring-symbiotic/Cargo.toml b/blueprints/incredible-squaring-symbiotic/Cargo.toml index 4739088b..d32dcf6f 100644 --- a/blueprints/incredible-squaring-symbiotic/Cargo.toml +++ b/blueprints/incredible-squaring-symbiotic/Cargo.toml @@ -13,7 +13,7 @@ publish = false eigensdk = { workspace = true } tracing = { workspace = true } async-trait = { workspace = true } -gadget-sdk = { workspace = true, features = ["std"] } +gadget-sdk = { workspace = true, features = ["std", "symbiotic"] } color-eyre = { workspace = true } lock_api = { workspace = true } tokio = { workspace = true, default-features = false, features = ["full"] } diff --git a/macros/context-derive/src/eigenlayer.rs b/macros/context-derive/src/eigenlayer.rs index c81734da..ccb0d6ea 100644 --- a/macros/context-derive/src/eigenlayer.rs +++ b/macros/context-derive/src/eigenlayer.rs @@ -21,17 +21,6 @@ pub fn generate_context_impl( let (impl_generics, ty_generics, where_clause) = generics.split_for_impl(); quote! { - use alloy_provider::Provider; - use eigensdk::client_avsregistry::reader::AvsRegistryReader; - use eigensdk::utils::binding::RegistryCoordinator; - use eigensdk::utils::binding::StakeRegistry::{StakeRegistryInstance, StakeUpdate}; - use eigensdk::types::operator::{Operator, OperatorPubKeys}; - use eigensdk::client_elcontracts::reader::ELChainReader; - use eigensdk::logging::get_test_logger; - use gadget_sdk::utils::evm::get_slasher_address; - use gadget_sdk::contexts::BigInt; - use alloy_primitives::{U256, FixedBytes}; - #[async_trait::async_trait] impl #impl_generics gadget_sdk::contexts::EigenlayerContext for #name #ty_generics #where_clause { async fn avs_registry_reader(&self) -> Result { @@ -42,7 +31,7 @@ pub fn generate_context_impl( let registry_coordinator_address = contract_addresses.registry_coordinator_address; let operator_state_retriever_address = contract_addresses.operator_state_retriever_address; eigensdk::client_avsregistry::reader::AvsRegistryChainReader::new( - eigensdk::logging::get_test_logger(), + ::gadget_sdk::ext::eigensdk::logging::get_test_logger(), registry_coordinator_address, operator_state_retriever_address, http_rpc_endpoint, @@ -58,7 +47,7 @@ pub fn generate_context_impl( let operator_state_retriever_address = contract_addresses.operator_state_retriever_address; eigensdk::client_avsregistry::writer::AvsRegistryChainWriter::build_avs_registry_chain_writer( - eigensdk::logging::get_test_logger(), + ::gadget_sdk::ext::eigensdk::logging::get_test_logger(), http_rpc_endpoint, private_key, registry_coordinator_address, @@ -66,15 +55,21 @@ pub fn generate_context_impl( ).await.map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e)) } - async fn operator_info_service_in_memory(&self) -> Result { + async fn operator_info_service_in_memory(&self) -> Result< + ( + ::gadget_sdk::ext::eigensdk::services_operatorsinfo::operatorsinfo_inmemory::OperatorInfoServiceInMemory, + ::gadget_sdk::tokio::sync::mpsc::UnboundedReceiver<::gadget_sdk::ext::eigensdk::services_operatorsinfo::operatorsinfo_inmemory::OperatorInfoServiceError> + ), + std::io::Error + > { let avs_registry_reader = self.avs_registry_reader().await?; let ws_endpoint = #field_access.ws_rpc_endpoint.clone(); - Ok(eigensdk::services_operatorsinfo::operatorsinfo_inmemory::OperatorInfoServiceInMemory::new( - eigensdk::logging::get_test_logger(), + eigensdk::services_operatorsinfo::operatorsinfo_inmemory::OperatorInfoServiceInMemory::new( + ::gadget_sdk::ext::eigensdk::logging::get_test_logger(), avs_registry_reader, ws_endpoint, - ).await) + ).await.map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e)) } async fn avs_registry_service_chain_caller_in_memory(&self) -> Result< @@ -82,9 +77,11 @@ pub fn generate_context_impl( eigensdk::client_avsregistry::reader::AvsRegistryChainReader, eigensdk::services_operatorsinfo::operatorsinfo_inmemory::OperatorInfoServiceInMemory >, std::io::Error> { + use ::gadget_sdk::ext::alloy_provider::Provider as _; + let http_rpc_endpoint = #field_access.http_rpc_endpoint.clone(); let avs_registry_reader = self.avs_registry_reader().await?; - let operator_info_service = self.operator_info_service_in_memory().await?; + let (operator_info_service, _) = self.operator_info_service_in_memory().await?; let cancellation_token = tokio_util::sync::CancellationToken::new(); let token_clone = cancellation_token.clone(); @@ -123,7 +120,9 @@ pub fn generate_context_impl( &self, block_number: u32, quorum_numbers: Bytes, - ) -> Result>, std::io::Error> { + ) -> Result>, std::io::Error> { + use ::gadget_sdk::ext::eigensdk::client_avsregistry::reader::AvsRegistryReader as _; + let http_rpc_endpoint = #field_access.http_rpc_endpoint.clone(); self.avs_registry_reader().await?.get_operators_stake_in_quorums_at_block( block_number, @@ -133,8 +132,8 @@ pub fn generate_context_impl( async fn get_operator_stake_in_quorums_at_current_block( &self, - operator_id: FixedBytes<32>, - ) -> Result, std::io::Error> { + operator_id: ::gadget_sdk::ext::alloy_primitives::FixedBytes<32>, + ) -> Result, std::io::Error> { let http_rpc_endpoint = #field_access.http_rpc_endpoint.clone(); self.avs_registry_reader().await?.get_operator_stake_in_quorums_of_operator_at_current_block( operator_id, @@ -145,6 +144,8 @@ pub fn generate_context_impl( &self, operator_id: [u8; 32], ) -> Result { + use ::gadget_sdk::ext::eigensdk::client_avsregistry::reader::AvsRegistryReader as _; + let http_rpc_endpoint = #field_access.http_rpc_endpoint.clone(); self.avs_registry_reader().await?.get_operator_from_id( operator_id, @@ -153,9 +154,11 @@ pub fn generate_context_impl( async fn get_operator_stake_history( &self, - operator_id: FixedBytes<32>, + operator_id: ::gadget_sdk::ext::alloy_primitives::FixedBytes<32>, quorum_number: u8, - ) -> Result, std::io::Error> { + ) -> Result, std::io::Error> { + use ::gadget_sdk::ext::alloy_provider::Provider as _; + let http_rpc_endpoint = #field_access.http_rpc_endpoint.clone(); let gadget_sdk::config::ProtocolSpecificSettings::Eigenlayer(contract_addresses) = &#field_access.protocol_specific else { return Err(std::io::Error::new(std::io::ErrorKind::InvalidData, "Expected Eigenlayer protocol")); @@ -166,9 +169,9 @@ pub fn generate_context_impl( .root() .clone() .boxed(); - let registry_coordinator = RegistryCoordinator::new(contract_addresses.registry_coordinator_address, provider.clone()); + let registry_coordinator = ::gadget_sdk::ext::eigensdk::utils::registrycoordinator::RegistryCoordinator::new(contract_addresses.registry_coordinator_address, provider.clone()); let stake_registry_address = registry_coordinator.stakeRegistry().call().await.map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e))?._0; - let instance = StakeRegistryInstance::new(stake_registry_address, provider.clone()); + let instance = ::gadget_sdk::ext::eigensdk::utils::stakeregistry::StakeRegistry::StakeRegistryInstance::new(stake_registry_address, provider.clone()); let call_builder = instance.getStakeHistory(operator_id, quorum_number); let response = call_builder.call().await.map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e))?; Ok(response._0) @@ -177,9 +180,11 @@ pub fn generate_context_impl( async fn get_operator_stake_update_at_index( &self, quorum_number: u8, - operator_id: FixedBytes<32>, - index: U256, - ) -> Result { + operator_id: ::gadget_sdk::ext::alloy_primitives::FixedBytes<32>, + index: ::gadget_sdk::ext::alloy_primitives::U256, + ) -> Result<::gadget_sdk::ext::eigensdk::utils::stakeregistry::IStakeRegistry::StakeUpdate, std::io::Error> { + use ::gadget_sdk::ext::alloy_provider::Provider as _; + let http_rpc_endpoint = #field_access.http_rpc_endpoint.clone(); let gadget_sdk::config::ProtocolSpecificSettings::Eigenlayer(contract_addresses) = &#field_access.protocol_specific else { return Err(std::io::Error::new(std::io::ErrorKind::InvalidData, "Expected Eigenlayer protocol")); @@ -190,9 +195,9 @@ pub fn generate_context_impl( .root() .clone() .boxed(); - let registry_coordinator = RegistryCoordinator::new(contract_addresses.registry_coordinator_address, provider.clone()); + let registry_coordinator = ::gadget_sdk::ext::eigensdk::utils::registrycoordinator::RegistryCoordinator::new(contract_addresses.registry_coordinator_address, provider.clone()); let stake_registry_address = registry_coordinator.stakeRegistry().call().await.map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e))?._0; - let instance = StakeRegistryInstance::new(stake_registry_address, provider.clone()); + let instance = ::gadget_sdk::ext::eigensdk::utils::stakeregistry::StakeRegistry::StakeRegistryInstance::new(stake_registry_address, provider.clone()); let call_builder = instance.getStakeUpdateAtIndex(quorum_number, operator_id, index); let response = call_builder.call().await.map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e))?; Ok(response._0) @@ -200,10 +205,12 @@ pub fn generate_context_impl( async fn get_operator_stake_at_block_number( &self, - operator_id: FixedBytes<32>, + operator_id: ::gadget_sdk::ext::alloy_primitives::FixedBytes<32>, quorum_number: u8, block_number: u32, - ) -> Result { + ) -> Result<::gadget_sdk::ext::alloy_primitives::Uint<96, 2>, std::io::Error> { + use ::gadget_sdk::ext::alloy_provider::Provider as _; + let http_rpc_endpoint = #field_access.http_rpc_endpoint.clone(); let gadget_sdk::config::ProtocolSpecificSettings::Eigenlayer(contract_addresses) = &#field_access.protocol_specific else { return Err(std::io::Error::new(std::io::ErrorKind::InvalidData, "Expected Eigenlayer protocol")); @@ -214,9 +221,9 @@ pub fn generate_context_impl( .root() .clone() .boxed(); - let registry_coordinator = RegistryCoordinator::new(contract_addresses.registry_coordinator_address, provider.clone()); + let registry_coordinator = ::gadget_sdk::ext::eigensdk::utils::registrycoordinator::RegistryCoordinator::new(contract_addresses.registry_coordinator_address, provider.clone()); let stake_registry_address = registry_coordinator.stakeRegistry().call().await.map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e))?._0; - let instance = StakeRegistryInstance::new(stake_registry_address, provider.clone()); + let instance = ::gadget_sdk::ext::eigensdk::utils::stakeregistry::StakeRegistry::StakeRegistryInstance::new(stake_registry_address, provider.clone()); let call_builder = instance.getStakeAtBlockNumber(operator_id, quorum_number, block_number); let response = call_builder.call().await.map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e))?; Ok(response._0) @@ -225,7 +232,9 @@ pub fn generate_context_impl( async fn get_operator_details( &self, operator_addr: Address - ) -> Result { + ) -> Result<::gadget_sdk::ext::eigensdk::types::operator::Operator, std::io::Error> { + use ::gadget_sdk::ext::alloy_provider::Provider as _; + let http_rpc_endpoint = #field_access.http_rpc_endpoint.clone(); let gadget_sdk::config::ProtocolSpecificSettings::Eigenlayer(contract_addresses) = &#field_access.protocol_specific else { return Err(std::io::Error::new(std::io::ErrorKind::InvalidData, "Expected Eigenlayer protocol")); @@ -236,9 +245,9 @@ pub fn generate_context_impl( .root() .clone() .boxed(); - let slasher_addr = get_slasher_address(contract_addresses.delegation_manager_address, &http_rpc_endpoint.clone()).await.map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e))?; - let chain_reader = ELChainReader::new( - get_test_logger(), + let slasher_addr = ::gadget_sdk::utils::evm::get_slasher_address(contract_addresses.delegation_manager_address, &http_rpc_endpoint.clone()).await.map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e))?; + let chain_reader = ::gadget_sdk::ext::eigensdk::client_elcontracts::reader::ELChainReader::new( + ::gadget_sdk::ext::eigensdk::logging::get_test_logger(), slasher_addr, contract_addresses.delegation_manager_address, contract_addresses.avs_directory_address, @@ -250,9 +259,11 @@ pub fn generate_context_impl( async fn get_latest_stake_update( &self, - operator_id: FixedBytes<32>, + operator_id: ::gadget_sdk::ext::alloy_primitives::FixedBytes<32>, quorum_number: u8, - ) -> Result { + ) -> Result<::gadget_sdk::ext::eigensdk::utils::stakeregistry::IStakeRegistry::StakeUpdate, std::io::Error> { + use ::gadget_sdk::ext::alloy_provider::Provider as _; + let http_rpc_endpoint = #field_access.http_rpc_endpoint.clone(); let gadget_sdk::config::ProtocolSpecificSettings::Eigenlayer(contract_addresses) = &#field_access.protocol_specific else { return Err(std::io::Error::new(std::io::ErrorKind::InvalidData, "Expected Eigenlayer protocol")); @@ -263,9 +274,9 @@ pub fn generate_context_impl( .root() .clone() .boxed(); - let registry_coordinator = RegistryCoordinator::new(contract_addresses.registry_coordinator_address, provider.clone()); + let registry_coordinator = ::gadget_sdk::ext::eigensdk::utils::registrycoordinator::RegistryCoordinator::new(contract_addresses.registry_coordinator_address, provider.clone()); let stake_registry_address = registry_coordinator.stakeRegistry().call().await.map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e))?._0; - let instance = StakeRegistryInstance::new(stake_registry_address, provider.clone()); + let instance = ::gadget_sdk::ext::eigensdk::utils::stakeregistry::StakeRegistry::StakeRegistryInstance::new(stake_registry_address, provider.clone()); let call_builder = instance.getLatestStakeUpdate(operator_id, quorum_number); let response = call_builder.call().await.map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e))?; Ok(response._0) @@ -274,7 +285,7 @@ pub fn generate_context_impl( async fn get_operator_id( &self, operator_addr: Address, - ) -> Result, std::io::Error> { + ) -> Result<::gadget_sdk::ext::alloy_primitives::FixedBytes<32>, std::io::Error> { let http_rpc_endpoint = #field_access.http_rpc_endpoint.clone(); self.avs_registry_reader().await?.get_operator_id( operator_addr, @@ -285,8 +296,10 @@ pub fn generate_context_impl( &self, quorum_number: u8, block_number: u32, - index: U256, - ) -> Result { + index: ::gadget_sdk::ext::alloy_primitives::U256, + ) -> Result, std::io::Error> { + use ::gadget_sdk::ext::alloy_provider::Provider as _; + let http_rpc_endpoint = #field_access.http_rpc_endpoint.clone(); let gadget_sdk::config::ProtocolSpecificSettings::Eigenlayer(contract_addresses) = &#field_access.protocol_specific else { return Err(std::io::Error::new(std::io::ErrorKind::InvalidData, "Expected Eigenlayer protocol")); @@ -297,9 +310,9 @@ pub fn generate_context_impl( .root() .clone() .boxed(); - let registry_coordinator = RegistryCoordinator::new(contract_addresses.registry_coordinator_address, provider.clone()); + let registry_coordinator = ::gadget_sdk::ext::eigensdk::utils::registrycoordinator::RegistryCoordinator::new(contract_addresses.registry_coordinator_address, provider.clone()); let stake_registry_address = registry_coordinator.stakeRegistry().call().await.map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e))?._0; - let instance = StakeRegistryInstance::new(stake_registry_address, provider.clone()); + let instance = ::gadget_sdk::ext::eigensdk::utils::stakeregistry::StakeRegistry::StakeRegistryInstance::new(stake_registry_address, provider.clone()); let call_builder = instance.getTotalStakeAtBlockNumberFromIndex(quorum_number, block_number, index); let response = call_builder.call().await.map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e))?; Ok(response._0) @@ -308,7 +321,9 @@ pub fn generate_context_impl( async fn get_total_stake_history_length( &self, quorum_number: u8, - ) -> Result { + ) -> Result<::gadget_sdk::ext::alloy_primitives::U256, std::io::Error> { + use ::gadget_sdk::ext::alloy_provider::Provider as _; + let http_rpc_endpoint = #field_access.http_rpc_endpoint.clone(); let gadget_sdk::config::ProtocolSpecificSettings::Eigenlayer(contract_addresses) = &#field_access.protocol_specific else { return Err(std::io::Error::new(std::io::ErrorKind::InvalidData, "Expected Eigenlayer protocol")); @@ -319,9 +334,9 @@ pub fn generate_context_impl( .root() .clone() .boxed(); - let registry_coordinator = RegistryCoordinator::new(contract_addresses.registry_coordinator_address, provider.clone()); + let registry_coordinator = ::gadget_sdk::ext::eigensdk::utils::registrycoordinator::RegistryCoordinator::new(contract_addresses.registry_coordinator_address, provider.clone()); let stake_registry_address = registry_coordinator.stakeRegistry().call().await.map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e))?._0; - let instance = StakeRegistryInstance::new(stake_registry_address, provider.clone()); + let instance = ::gadget_sdk::ext::eigensdk::utils::stakeregistry::StakeRegistry::StakeRegistryInstance::new(stake_registry_address, provider.clone()); let call_builder = instance.getTotalStakeHistoryLength(quorum_number); let response = call_builder.call().await.map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e))?; Ok(response._0) @@ -331,7 +346,7 @@ pub fn generate_context_impl( &self, start_block: u64, to_block: u64, - ) -> Result<(Vec
, Vec), std::io::Error> { + ) -> Result<(Vec
, Vec<::gadget_sdk::ext::eigensdk::types::operator::OperatorPubKeys>), std::io::Error> { let ws_rpc_endpoint = #field_access.ws_rpc_endpoint.clone(); self.avs_registry_reader().await?.query_existing_registered_operator_pub_keys( start_block, diff --git a/macros/context-derive/src/evm.rs b/macros/context-derive/src/evm.rs index d6238101..492ab983 100644 --- a/macros/context-derive/src/evm.rs +++ b/macros/context-derive/src/evm.rs @@ -1,3 +1,4 @@ +use proc_macro2::Ident; use quote::quote; use syn::DeriveInput; @@ -19,48 +20,54 @@ pub fn generate_context_impl( let (impl_generics, ty_generics, where_clause) = generics.split_for_impl(); + let network_ty_ident = Ident::new(&format!("__{}Network", name), name.span()); + let transport_ty_ident = Ident::new(&format!("__{}Transport", name), name.span()); + let provider_ty_ident = Ident::new(&format!("__{}Provider", name), name.span()); + quote! { - impl #impl_generics gadget_sdk::contexts::EVMProviderContext for #name #ty_generics #where_clause { - type Network = alloy_network::Ethereum; - type Transport = alloy_transport::BoxTransport; - type Provider = alloy_provider::fillers::FillProvider< - alloy_provider::fillers::RecommendedFiller, - alloy_provider::RootProvider, - Self::Transport, - Self::Network, - >; - fn evm_provider(&self) -> impl core::future::Future> { - type Provider = alloy_provider::fillers::FillProvider< - alloy_provider::fillers::RecommendedFiller, - alloy_provider::RootProvider, - alloy_transport::BoxTransport, - alloy_network::Ethereum, - >; - static PROVIDER: std::sync::OnceLock = std::sync::OnceLock::new(); - async { - match PROVIDER.get() { - Some(provider) => Ok(provider.clone()), - None => { - let rpc_url = #field_access.http_rpc_endpoint.as_str(); - let provider = alloy_provider::ProviderBuilder::new() - .with_recommended_fillers() - .on_builtin(rpc_url) - .await?; - PROVIDER - .set(provider.clone()) - .map(|_| provider) - .map_err(|_| { - alloy_transport::TransportError::LocalUsageError(Box::new( - std::io::Error::new( - std::io::ErrorKind::Other, - "Failed to set provider", - ), - )) - }) - } + type #network_ty_ident = ::gadget_sdk::ext::alloy_network::Ethereum; + type #transport_ty_ident = ::gadget_sdk::ext::alloy_transport::BoxTransport; + type #provider_ty_ident = ::gadget_sdk::ext::alloy_provider::fillers::FillProvider< + ::gadget_sdk::ext::alloy_provider::fillers::JoinFill< + ::gadget_sdk::ext::alloy_provider::Identity, + <#network_ty_ident as ::gadget_sdk::ext::alloy_provider::fillers::RecommendedFillers>::RecomendedFillers, + >, + ::gadget_sdk::ext::alloy_provider::RootProvider<#transport_ty_ident>, + #transport_ty_ident, + #network_ty_ident, + >; + + #[automatically_derived] + impl #impl_generics ::gadget_sdk::contexts::EVMProviderContext for #name #ty_generics #where_clause { + type Network = #network_ty_ident; + type Transport = #transport_ty_ident; + type Provider = #provider_ty_ident; + fn evm_provider(&self) -> impl core::future::Future> { + static PROVIDER: std::sync::OnceLock<#provider_ty_ident> = std::sync::OnceLock::new(); + async { + match PROVIDER.get() { + Some(provider) => Ok(provider.clone()), + None => { + let rpc_url = #field_access.http_rpc_endpoint.as_str(); + let provider = alloy_provider::ProviderBuilder::new() + .with_recommended_fillers() + .on_builtin(rpc_url) + .await?; + PROVIDER + .set(provider.clone()) + .map(|_| provider) + .map_err(|_| { + alloy_transport::TransportError::LocalUsageError(Box::new( + std::io::Error::new( + std::io::ErrorKind::Other, + "Failed to set provider", + ), + )) + }) } } } + } } } } diff --git a/sdk/Cargo.toml b/sdk/Cargo.toml index 54f9b5e0..f46097a7 100644 --- a/sdk/Cargo.toml +++ b/sdk/Cargo.toml @@ -35,8 +35,7 @@ ed25519-zebra = { workspace = true } k256 = { workspace = true, features = ["ecdsa", "ecdsa-core", "arithmetic"] } schnorrkel = { workspace = true } w3f-bls = { workspace = true } -eigensdk = { workspace = true } -symbiotic-rs = { workspace = true } +eigensdk = { workspace = true, features = ["full", "utils", "types"] } ark-serialize = { workspace = true } ark-ff = { workspace = true } ark-ec = { workspace = true } @@ -68,6 +67,9 @@ sp-core = { workspace = true, features = ["full_crypto"] } sp-io = { workspace = true } scale-info = { workspace = true } +# Symbiotic +symbiotic-rs = { workspace = true, optional = true } + # Event Watchers and Handlers backon = { workspace = true, optional = true } subxt = { workspace = true, optional = true, features = ["substrate-compat"] } @@ -170,6 +172,9 @@ wasm = [ "subxt/web", "tangle-subxt/web", ] +symbiotic = [ + "dep:symbiotic-rs" +] # Randomness getrandom = ["dep:getrandom", "rand/getrandom"] diff --git a/sdk/src/config/context_config.rs b/sdk/src/config/context_config.rs index 0146840a..51e177c6 100644 --- a/sdk/src/config/context_config.rs +++ b/sdk/src/config/context_config.rs @@ -118,6 +118,14 @@ pub enum GadgetCLICoreSettings { required_if_eq("protocol", Protocol::Eigenlayer.as_str()) )] avs_directory: Option
, + /// The address of the rewards coordinator + #[arg( + long, + value_name = "ADDR", + env = "REWARDS_COORDINATOR_ADDRESS", + required_if_eq("protocol", Protocol::Eigenlayer.as_str()) + )] + rewards_coordinator: Option
, /// The address of the operator registry #[arg( long, @@ -202,6 +210,7 @@ impl Default for GadgetCLICoreSettings { delegation_manager: None, strategy_manager: None, avs_directory: None, + rewards_coordinator: None, operator_registry: None, network_registry: None, base_delegator: None, @@ -253,6 +262,8 @@ impl ContextConfig { eigenlayer_contract_addresses.map(|a| a.delegation_manager_address); let strategy_manager = eigenlayer_contract_addresses.map(|a| a.strategy_manager_address); let avs_directory = eigenlayer_contract_addresses.map(|a| a.avs_directory_address); + let rewards_coordinator = + eigenlayer_contract_addresses.map(|a| a.rewards_coordinator_address); // Symbiotic addresses let operator_registry = symbiotic_contract_addresses.map(|a| a.operator_registry_address); @@ -289,6 +300,7 @@ impl ContextConfig { ws_rpc_url, strategy_manager, avs_directory, + rewards_coordinator, operator_registry, network_registry, base_delegator, diff --git a/sdk/src/config/mod.rs b/sdk/src/config/mod.rs index 88d40f68..5a190dfe 100644 --- a/sdk/src/config/mod.rs +++ b/sdk/src/config/mod.rs @@ -125,6 +125,7 @@ fn load_inner( delegation_manager, strategy_manager, avs_directory, + rewards_coordinator, operator_registry, network_registry, base_delegator, @@ -154,6 +155,8 @@ fn load_inner( .ok_or(Error::MissingEigenlayerContractAddresses)?, avs_directory_address: avs_directory .ok_or(Error::MissingEigenlayerContractAddresses)?, + rewards_coordinator_address: rewards_coordinator + .ok_or(Error::MissingEigenlayerContractAddresses)?, }), Protocol::Symbiotic => ProtocolSpecificSettings::Symbiotic(SymbioticContractAddresses { operator_registry_address: operator_registry diff --git a/sdk/src/config/protocol.rs b/sdk/src/config/protocol.rs index 85ae8a9d..4926b115 100644 --- a/sdk/src/config/protocol.rs +++ b/sdk/src/config/protocol.rs @@ -91,6 +91,7 @@ pub struct EigenlayerContractAddresses { pub strategy_manager_address: Address, /// The address of the avs registry contract pub avs_directory_address: Address, + pub rewards_coordinator_address: Address, } impl Default for EigenlayerContractAddresses { @@ -101,6 +102,7 @@ impl Default for EigenlayerContractAddresses { delegation_manager_address: address!("dc64a140aa3e981100a9beca4e685f962f0cf6c9"), strategy_manager_address: address!("5fc8d32690cc91d4c39d9d3abcbd16989f875707"), avs_directory_address: address!("0000000000000000000000000000000000000000"), + rewards_coordinator_address: address!("0000000000000000000000000000000000000000"), } } } diff --git a/sdk/src/contexts/eigenlayer.rs b/sdk/src/contexts/eigenlayer.rs index 17f034f3..03d8af0a 100644 --- a/sdk/src/contexts/eigenlayer.rs +++ b/sdk/src/contexts/eigenlayer.rs @@ -1,13 +1,15 @@ -use alloy_primitives::{Address, Bytes, FixedBytes, U256}; +use alloy_primitives::{Address, Bytes, FixedBytes, Uint, U256}; use eigensdk::client_avsregistry::reader::AvsRegistryChainReader; use eigensdk::client_avsregistry::writer::AvsRegistryChainWriter; use eigensdk::client_elcontracts::writer::Operator; use eigensdk::services_avsregistry::chaincaller::AvsRegistryServiceChainCaller; use eigensdk::services_blsaggregation::bls_agg::BlsAggregatorService; -use eigensdk::services_operatorsinfo::operatorsinfo_inmemory::OperatorInfoServiceInMemory; +use eigensdk::services_operatorsinfo::operatorsinfo_inmemory::{ + OperatorInfoServiceError, OperatorInfoServiceInMemory, +}; use eigensdk::types::operator::OperatorPubKeys; -use eigensdk::utils::binding::OperatorStateRetriever; -use eigensdk::utils::binding::StakeRegistry::StakeUpdate; +use eigensdk::utils::operatorstateretriever::OperatorStateRetriever; +use eigensdk::utils::stakeregistry::IStakeRegistry::StakeUpdate; use num_bigint::BigInt; use std::collections::HashMap; @@ -28,7 +30,13 @@ pub trait EigenlayerContext { /// Provides an operator info service. async fn operator_info_service_in_memory( &self, - ) -> color_eyre::Result; + ) -> color_eyre::Result< + ( + OperatorInfoServiceInMemory, + tokio::sync::mpsc::UnboundedReceiver, + ), + std::io::Error, + >; /// Provides an AVS registry service chain caller. async fn avs_registry_service_chain_caller_in_memory( @@ -88,7 +96,7 @@ pub trait EigenlayerContext { operator_id: FixedBytes<32>, quorum_number: u8, block_number: u32, - ) -> color_eyre::Result; + ) -> color_eyre::Result, std::io::Error>; /// Get an Operator's [`details`](OperatorDetails). async fn get_operator_details( @@ -115,7 +123,7 @@ pub trait EigenlayerContext { quorum_number: u8, block_number: u32, index: U256, - ) -> color_eyre::Result; + ) -> color_eyre::Result, std::io::Error>; /// Get the total stake history length of a given quorum. async fn get_total_stake_history_length( diff --git a/sdk/src/event_listener/tangle/jobs.rs b/sdk/src/event_listener/tangle/jobs.rs index 6cd0ea69..9592b402 100644 --- a/sdk/src/event_listener/tangle/jobs.rs +++ b/sdk/src/event_listener/tangle/jobs.rs @@ -64,7 +64,7 @@ pub async fn services_post_processor( let response = api::tx().services().submit_result( service_id, call_id, - vec![blueprint_serde::to_field(results)?], + vec![dbg!(blueprint_serde::to_field(results)?)], ); let _ = crate::tx::tangle::send(&client, &signer, &response) .await diff --git a/sdk/src/lib.rs b/sdk/src/lib.rs index 030fd15c..f73768d9 100644 --- a/sdk/src/lib.rs +++ b/sdk/src/lib.rs @@ -88,7 +88,12 @@ pub use uuid; // External modules usually used in proc-macro codegen. #[doc(hidden)] pub mod ext { + pub use alloy_network; + pub use alloy_primitives; + pub use alloy_provider; + pub use alloy_transport; pub use blueprint_serde; + pub use eigensdk; pub use lock_api; #[cfg(feature = "std")] pub use parking_lot; diff --git a/sdk/src/runners/eigenlayer.rs b/sdk/src/runners/eigenlayer.rs index 2acba63e..d1eaeb9c 100644 --- a/sdk/src/runners/eigenlayer.rs +++ b/sdk/src/runners/eigenlayer.rs @@ -75,6 +75,7 @@ impl BlueprintConfig for EigenlayerConfig { let operator_state_retriever_address = contract_addresses.operator_state_retriever_address; let delegation_manager_address = contract_addresses.delegation_manager_address; let strategy_manager_address = contract_addresses.strategy_manager_address; + let rewards_coordinator_address = contract_addresses.rewards_coordinator_address; let avs_directory_address = contract_addresses.avs_directory_address; let operator = env.keystore()?.ecdsa_key()?; @@ -82,10 +83,11 @@ impl BlueprintConfig for EigenlayerConfig { let operator_address = operator.alloy_key()?.address(); let provider = get_provider_http(&env.http_rpc_endpoint); - let delegation_manager = eigensdk::utils::binding::DelegationManager::new( - delegation_manager_address, - provider.clone(), - ); + let delegation_manager = + eigensdk::utils::delegationmanager::DelegationManager::DelegationManagerInstance::new( + delegation_manager_address, + provider.clone(), + ); let slasher_address = delegation_manager.slasher().call().await.map(|a| a._0)?; let logger = get_test_logger(); @@ -124,6 +126,7 @@ impl BlueprintConfig for EigenlayerConfig { let el_writer = ELChainWriter::new( delegation_manager_address, strategy_manager_address, + rewards_coordinator_address, el_chain_reader, env.http_rpc_endpoint.clone(), operator_private_key, diff --git a/sdk/src/runners/mod.rs b/sdk/src/runners/mod.rs index 906a1b45..316511d0 100644 --- a/sdk/src/runners/mod.rs +++ b/sdk/src/runners/mod.rs @@ -6,6 +6,7 @@ use std::pin::Pin; use tokio::sync::oneshot; pub mod eigenlayer; +#[cfg(feature = "symbiotic")] pub mod symbiotic; pub mod jobs; @@ -43,6 +44,9 @@ pub enum RunnerError { #[error(transparent)] ContractError(#[from] alloy_contract::Error), + #[error(transparent)] + PendingTransactionError(#[from] alloy_provider::PendingTransactionError), + #[error(transparent)] ElContractsError(#[from] eigensdk::client_elcontracts::error::ElContractsError), diff --git a/sdk/src/utils/evm.rs b/sdk/src/utils/evm.rs index adf2f26d..88dbe063 100644 --- a/sdk/src/utils/evm.rs +++ b/sdk/src/utils/evm.rs @@ -71,7 +71,10 @@ pub async fn get_slasher_address( ) -> Result { let provider = get_provider_http(http_endpoint); let delegation_manager = - eigensdk::utils::binding::DelegationManager::new(delegation_manager_addr, provider); + eigensdk::utils::delegationmanager::DelegationManager::DelegationManagerInstance::new( + delegation_manager_addr, + provider, + ); delegation_manager .slasher() .call()