diff --git a/Cargo.lock b/Cargo.lock index bb9a11a3..21d2ff71 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -787,6 +787,24 @@ dependencies = [ "thiserror 2.0.12", ] +[[package]] +name = "alloy-signer-aws" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6be3d371299b62eac5aa459fa58e8d1c761aabdc637573ae258ab744457fcc88" +dependencies = [ + "alloy-consensus 1.0.9", + "alloy-network", + "alloy-primitives", + "alloy-signer", + "async-trait", + "aws-sdk-kms", + "k256", + "spki", + "thiserror 2.0.12", + "tracing", +] + [[package]] name = "alloy-signer-local" version = "1.0.9" @@ -908,7 +926,7 @@ dependencies = [ "alloy-rpc-types-engine 1.0.9", "alloy-transport", "http-body-util", - "hyper", + "hyper 1.6.0", "hyper-tls", "hyper-util", "jsonwebtoken", @@ -948,8 +966,8 @@ dependencies = [ "alloy-pubsub", "alloy-transport", "futures", - "http", - "rustls", + "http 1.3.1", + "rustls 0.23.27", "serde_json", "tokio", "tokio-tungstenite", @@ -1484,6 +1502,384 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +[[package]] +name = "aws-config" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "455e9fb7743c6f6267eb2830ccc08686fbb3d13c9a689369562fd4d4ef9ea462" +dependencies = [ + "aws-credential-types", + "aws-runtime", + "aws-sdk-sso", + "aws-sdk-ssooidc", + "aws-sdk-sts", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes", + "fastrand", + "hex", + "http 1.3.1", + "ring", + "time", + "tokio", + "tracing", + "url", + "zeroize", +] + +[[package]] +name = "aws-credential-types" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "687bc16bc431a8533fe0097c7f0182874767f920989d7260950172ae8e3c4465" +dependencies = [ + "aws-smithy-async", + "aws-smithy-runtime-api", + "aws-smithy-types", + "zeroize", +] + +[[package]] +name = "aws-lc-rs" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fcc8f365936c834db5514fc45aee5b1202d677e6b40e48468aaaa8183ca8c7" +dependencies = [ + "aws-lc-sys", + "zeroize", +] + +[[package]] +name = "aws-lc-sys" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61b1d86e7705efe1be1b569bab41d4fa1e14e220b60a160f78de2db687add079" +dependencies = [ + "bindgen 0.69.5", + "cc", + "cmake", + "dunce", + "fs_extra", +] + +[[package]] +name = "aws-runtime" +version = "1.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f6c68419d8ba16d9a7463671593c54f81ba58cab466e9b759418da606dcc2e2" +dependencies = [ + "aws-credential-types", + "aws-sigv4", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes", + "fastrand", + "http 0.2.12", + "http-body 0.4.6", + "percent-encoding", + "pin-project-lite", + "tracing", + "uuid", +] + +[[package]] +name = "aws-sdk-kms" +version = "1.76.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8565497721d9f18fa29a68bc5d8225b39e1cc7399d7fc6f1ad803ca934341804" +dependencies = [ + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes", + "fastrand", + "http 0.2.12", + "regex-lite", + "tracing", +] + +[[package]] +name = "aws-sdk-sso" +version = "1.73.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2ac1674cba7872061a29baaf02209fefe499ff034dfd91bd4cc59e4d7741489" +dependencies = [ + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes", + "fastrand", + "http 0.2.12", + "regex-lite", + "tracing", +] + +[[package]] +name = "aws-sdk-ssooidc" +version = "1.74.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a6a22f077f5fd3e3c0270d4e1a110346cddf6769e9433eb9e6daceb4ca3b149" +dependencies = [ + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes", + "fastrand", + "http 0.2.12", + "regex-lite", + "tracing", +] + +[[package]] +name = "aws-sdk-sts" +version = "1.74.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d440e1d368759bd10df0dbdddbfff6473d7cd73e9d9ef2363dc9995ac2d711" +dependencies = [ + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-query", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-smithy-xml", + "aws-types", + "fastrand", + "http 0.2.12", + "regex-lite", + "tracing", +] + +[[package]] +name = "aws-sigv4" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddfb9021f581b71870a17eac25b52335b82211cdc092e02b6876b2bcefa61666" +dependencies = [ + "aws-credential-types", + "aws-smithy-http", + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes", + "form_urlencoded", + "hex", + "hmac", + "http 0.2.12", + "http 1.3.1", + "percent-encoding", + "sha2 0.10.9", + "time", + "tracing", +] + +[[package]] +name = "aws-smithy-async" +version = "1.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e190749ea56f8c42bf15dd76c65e14f8f765233e6df9b0506d9d934ebef867c" +dependencies = [ + "futures-util", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "aws-smithy-http" +version = "0.62.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99335bec6cdc50a346fda1437f9fefe33abf8c99060739a546a16457f2862ca9" +dependencies = [ + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes", + "bytes-utils", + "futures-core", + "http 0.2.12", + "http 1.3.1", + "http-body 0.4.6", + "percent-encoding", + "pin-project-lite", + "pin-utils", + "tracing", +] + +[[package]] +name = "aws-smithy-http-client" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f491388e741b7ca73b24130ff464c1478acc34d5b331b7dd0a2ee4643595a15" +dependencies = [ + "aws-smithy-async", + "aws-smithy-runtime-api", + "aws-smithy-types", + "h2 0.3.26", + "h2 0.4.10", + "http 0.2.12", + "http 1.3.1", + "http-body 0.4.6", + "hyper 0.14.32", + "hyper 1.6.0", + "hyper-rustls 0.24.2", + "hyper-rustls 0.27.6", + "hyper-util", + "pin-project-lite", + "rustls 0.21.12", + "rustls 0.23.27", + "rustls-native-certs 0.8.1", + "rustls-pki-types", + "tokio", + "tower", + "tracing", +] + +[[package]] +name = "aws-smithy-json" +version = "0.61.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a16e040799d29c17412943bdbf488fd75db04112d0c0d4b9290bacf5ae0014b9" +dependencies = [ + "aws-smithy-types", +] + +[[package]] +name = "aws-smithy-observability" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9364d5989ac4dd918e5cc4c4bdcc61c9be17dcd2586ea7f69e348fc7c6cab393" +dependencies = [ + "aws-smithy-runtime-api", +] + +[[package]] +name = "aws-smithy-query" +version = "0.60.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2fbd61ceb3fe8a1cb7352e42689cec5335833cd9f94103a61e98f9bb61c64bb" +dependencies = [ + "aws-smithy-types", + "urlencoding", +] + +[[package]] +name = "aws-smithy-runtime" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14302f06d1d5b7d333fd819943075b13d27c7700b414f574c3c35859bfb55d5e" +dependencies = [ + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-http-client", + "aws-smithy-observability", + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes", + "fastrand", + "http 0.2.12", + "http 1.3.1", + "http-body 0.4.6", + "http-body 1.0.1", + "pin-project-lite", + "pin-utils", + "tokio", + "tracing", +] + +[[package]] +name = "aws-smithy-runtime-api" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd8531b6d8882fd8f48f82a9754e682e29dd44cff27154af51fa3eb730f59efb" +dependencies = [ + "aws-smithy-async", + "aws-smithy-types", + "bytes", + "http 0.2.12", + "http 1.3.1", + "pin-project-lite", + "tokio", + "tracing", + "zeroize", +] + +[[package]] +name = "aws-smithy-types" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d498595448e43de7f4296b7b7a18a8a02c61ec9349128c80a368f7c3b4ab11a8" +dependencies = [ + "base64-simd", + "bytes", + "bytes-utils", + "futures-core", + "http 0.2.12", + "http 1.3.1", + "http-body 0.4.6", + "http-body 1.0.1", + "http-body-util", + "itoa", + "num-integer", + "pin-project-lite", + "pin-utils", + "ryu", + "serde", + "time", + "tokio", + "tokio-util", +] + +[[package]] +name = "aws-smithy-xml" +version = "0.60.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db87b96cb1b16c024980f133968d52882ca0daaee3a086c6decc500f6c99728" +dependencies = [ + "xmlparser", +] + +[[package]] +name = "aws-types" +version = "1.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a322fec39e4df22777ed3ad8ea868ac2f94cd15e1a55f6ee8d8d6305057689a" +dependencies = [ + "aws-credential-types", + "aws-smithy-async", + "aws-smithy-runtime-api", + "aws-smithy-types", + "rustc_version 0.4.1", + "tracing", +] + [[package]] name = "backon" version = "1.5.1" @@ -1533,6 +1929,16 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64-simd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" +dependencies = [ + "outref", + "vsimd", +] + [[package]] name = "base64ct" version = "1.7.3" @@ -1574,6 +1980,29 @@ dependencies = [ "serde", ] +[[package]] +name = "bindgen" +version = "0.69.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" +dependencies = [ + "bitflags 2.9.1", + "cexpr", + "clang-sys", + "itertools 0.10.5", + "lazy_static", + "lazycell", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash 1.1.0", + "shlex", + "syn 2.0.101", + "which", +] + [[package]] name = "bindgen" version = "0.70.1" @@ -1827,6 +2256,16 @@ dependencies = [ "serde", ] +[[package]] +name = "bytes-utils" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dafe3a8757b027e2be6e4e5601ed563c55989fcf1546e933c66c8eb3a058d35" +dependencies = [ + "bytes", + "either", +] + [[package]] name = "c-kzg" version = "2.1.1" @@ -2017,6 +2456,15 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" +[[package]] +name = "cmake" +version = "0.1.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0" +dependencies = [ + "cc", +] + [[package]] name = "coins-bip32" version = "0.12.0" @@ -3152,6 +3600,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + [[package]] name = "fsevent-sys" version = "4.1.0" @@ -3381,7 +3835,7 @@ dependencies = [ "futures-core", "futures-sink", "gloo-utils", - "http", + "http 1.3.1", "js-sys", "pin-project", "serde", @@ -3428,6 +3882,25 @@ dependencies = [ "subtle", ] +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.12", + "indexmap 2.9.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "h2" version = "0.4.10" @@ -3439,7 +3912,7 @@ dependencies = [ "fnv", "futures-core", "futures-sink", - "http", + "http 1.3.1", "indexmap 2.9.0", "slab", "tokio", @@ -3628,6 +4101,17 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http" version = "1.3.1" @@ -3639,6 +4123,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.12", + "pin-project-lite", +] + [[package]] name = "http-body" version = "1.0.1" @@ -3646,7 +4141,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http", + "http 1.3.1", ] [[package]] @@ -3657,8 +4152,8 @@ checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", "futures-core", - "http", - "http-body", + "http 1.3.1", + "http-body 1.0.1", "pin-project-lite", ] @@ -3702,6 +4197,30 @@ dependencies = [ "serde", ] +[[package]] +name = "hyper" +version = "0.14.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + [[package]] name = "hyper" version = "1.6.0" @@ -3711,9 +4230,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "h2", - "http", - "http-body", + "h2 0.4.10", + "http 1.3.1", + "http-body 1.0.1", "httparse", "httpdate", "itoa", @@ -3723,21 +4242,37 @@ dependencies = [ "want", ] +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http 0.2.12", + "hyper 0.14.32", + "log", + "rustls 0.21.12", + "rustls-native-certs 0.6.3", + "tokio", + "tokio-rustls 0.24.1", +] + [[package]] name = "hyper-rustls" version = "0.27.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03a01595e11bdcec50946522c32dde3fc6914743000a68b93000965f2f02406d" dependencies = [ - "http", - "hyper", + "http 1.3.1", + "hyper 1.6.0", "hyper-util", "log", - "rustls", - "rustls-native-certs", + "rustls 0.23.27", + "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", - "tokio-rustls", + "tokio-rustls 0.26.2", "tower-service", "webpki-roots 1.0.0", ] @@ -3750,7 +4285,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper", + "hyper 1.6.0", "hyper-util", "native-tls", "tokio", @@ -3769,9 +4304,9 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "http", - "http-body", - "hyper", + "http 1.3.1", + "http-body 1.0.1", + "hyper 1.6.0", "ipnet", "libc", "percent-encoding", @@ -4236,16 +4771,16 @@ dependencies = [ "futures-channel", "futures-util", "gloo-net", - "http", + "http 1.3.1", "jsonrpsee-core", "pin-project", - "rustls", + "rustls 0.23.27", "rustls-pki-types", "rustls-platform-verifier", "soketto", "thiserror 2.0.12", "tokio", - "tokio-rustls", + "tokio-rustls 0.26.2", "tokio-util", "tracing", "url", @@ -4261,8 +4796,8 @@ dependencies = [ "bytes", "futures-timer", "futures-util", - "http", - "http-body", + "http 1.3.1", + "http-body 1.0.1", "http-body-util", "jsonrpsee-types", "parking_lot 0.12.3", @@ -4286,13 +4821,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6962d2bd295f75e97dd328891e58fce166894b974c1f7ce2e7597f02eeceb791" dependencies = [ "base64 0.22.1", - "http-body", - "hyper", - "hyper-rustls", + "http-body 1.0.1", + "hyper 1.6.0", + "hyper-rustls 0.27.6", "hyper-util", "jsonrpsee-core", "jsonrpsee-types", - "rustls", + "rustls 0.23.27", "rustls-platform-verifier", "serde", "serde_json", @@ -4322,10 +4857,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d38b0bcf407ac68d241f90e2d46041e6a06988f97fe1721fb80b91c42584fae6" dependencies = [ "futures-util", - "http", - "http-body", + "http 1.3.1", + "http-body 1.0.1", "http-body-util", - "hyper", + "hyper 1.6.0", "hyper-util", "jsonrpsee-core", "jsonrpsee-types", @@ -4348,7 +4883,7 @@ version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66df7256371c45621b3b7d2fb23aea923d577616b9c0e9c0b950a6ea5c2be0ca" dependencies = [ - "http", + "http 1.3.1", "serde", "serde_json", "thiserror 2.0.12", @@ -4372,7 +4907,7 @@ version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2da2694c9ff271a9d3ebfe520f6b36820e85133a51be77a3cb549fd615095261" dependencies = [ - "http", + "http 1.3.1", "jsonrpsee-client-transport", "jsonrpsee-core", "jsonrpsee-types", @@ -4458,6 +4993,12 @@ dependencies = [ "spin", ] +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + [[package]] name = "libc" version = "0.2.172" @@ -4517,7 +5058,7 @@ version = "0.14.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e78a09b56be5adbcad5aa1197371688dc6bb249a26da3bca2011ee2fb987ebfb" dependencies = [ - "bindgen", + "bindgen 0.70.1", "errno", "libc", ] @@ -5391,6 +5932,12 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "outref" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" + [[package]] name = "overload" version = "0.1.1" @@ -5737,6 +6284,16 @@ dependencies = [ "yansi", ] +[[package]] +name = "prettyplease" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6837b9e10d61f45f987d50808f83d1ee3d206c66acf650c3e4ae2e1f6ddedf55" +dependencies = [ + "proc-macro2", + "syn 2.0.101", +] + [[package]] name = "primeorder" version = "0.13.6" @@ -5949,7 +6506,7 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash 2.1.1", - "rustls", + "rustls 0.23.27", "socket2", "thiserror 2.0.12", "tokio", @@ -5969,7 +6526,7 @@ dependencies = [ "rand 0.9.1", "ring", "rustc-hash 2.1.1", - "rustls", + "rustls 0.23.27", "rustls-pki-types", "slab", "thiserror 2.0.12", @@ -6221,6 +6778,12 @@ dependencies = [ "regex-syntax 0.8.5", ] +[[package]] +name = "regex-lite" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" + [[package]] name = "regex-syntax" version = "0.6.29" @@ -6254,12 +6817,12 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2", - "http", - "http-body", + "h2 0.4.10", + "http 1.3.1", + "http-body 1.0.1", "http-body-util", - "hyper", - "hyper-rustls", + "hyper 1.6.0", + "hyper-rustls 0.27.6", "hyper-tls", "hyper-util", "ipnet", @@ -6271,8 +6834,8 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls", - "rustls-native-certs", + "rustls 0.23.27", + "rustls-native-certs 0.8.1", "rustls-pki-types", "serde", "serde_json", @@ -6280,7 +6843,7 @@ dependencies = [ "sync_wrapper", "tokio", "tokio-native-tls", - "tokio-rustls", + "tokio-rustls 0.26.2", "tokio-util", "tower", "tower-http", @@ -6301,7 +6864,7 @@ checksum = "57f17d28a6e6acfe1733fe24bcd30774d13bffa4b8a22535b4c8c98423088d4e" dependencies = [ "anyhow", "async-trait", - "http", + "http 1.3.1", "reqwest", "serde", "thiserror 1.0.69", @@ -6318,8 +6881,8 @@ dependencies = [ "async-trait", "futures", "getrandom 0.2.16", - "http", - "hyper", + "http 1.3.1", + "hyper 1.6.0", "parking_lot 0.11.2", "reqwest", "reqwest-middleware", @@ -7474,7 +8037,7 @@ name = "reth-mdbx-sys" version = "1.4.8" source = "git+https://github.com/scroll-tech/reth.git#ce8b77ab464afc9b5159bdfff690892fd01be744" dependencies = [ - "bindgen", + "bindgen 0.70.1", "cc", ] @@ -7867,7 +8430,7 @@ version = "1.4.8" source = "git+https://github.com/scroll-tech/reth.git#ce8b77ab464afc9b5159bdfff690892fd01be744" dependencies = [ "eyre", - "http", + "http 1.3.1", "jsonrpsee-server", "metrics", "metrics-exporter-prometheus", @@ -8162,9 +8725,9 @@ dependencies = [ "async-trait", "derive_more", "futures", - "http", - "http-body", - "hyper", + "http 1.3.1", + "http-body 1.0.1", + "hyper 1.6.0", "jsonrpsee", "jsonrpsee-types", "jsonwebtoken", @@ -8244,7 +8807,7 @@ source = "git+https://github.com/scroll-tech/reth.git#ce8b77ab464afc9b5159bdfff6 dependencies = [ "alloy-network", "alloy-provider", - "http", + "http 1.3.1", "jsonrpsee", "metrics", "pin-project", @@ -8396,7 +8959,7 @@ version = "1.4.8" source = "git+https://github.com/scroll-tech/reth.git#ce8b77ab464afc9b5159bdfff690892fd01be744" dependencies = [ "alloy-rpc-types-engine 1.0.9", - "http", + "http 1.3.1", "jsonrpsee-http-client", "pin-project", "tower", @@ -9470,8 +10033,12 @@ dependencies = [ "alloy-provider", "alloy-rpc-client", "alloy-rpc-types-engine 1.0.9", + "alloy-signer", + "alloy-signer-aws", "alloy-signer-local", "alloy-transport", + "aws-config", + "aws-sdk-kms", "clap", "eyre", "futures", @@ -9875,21 +10442,46 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "log", + "ring", + "rustls-webpki 0.101.7", + "sct", +] + [[package]] name = "rustls" version = "0.23.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "730944ca083c1c233a75c09f199e973ca499344a2b7ba9e755c457e86fb4a321" dependencies = [ + "aws-lc-rs", "log", "once_cell", "ring", "rustls-pki-types", - "rustls-webpki", + "rustls-webpki 0.103.3", "subtle", "zeroize", ] +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework 2.11.1", +] + [[package]] name = "rustls-native-certs" version = "0.8.1" @@ -9902,6 +10494,15 @@ dependencies = [ "security-framework 3.2.0", ] +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + [[package]] name = "rustls-pki-types" version = "1.12.0" @@ -9923,10 +10524,10 @@ dependencies = [ "jni", "log", "once_cell", - "rustls", - "rustls-native-certs", + "rustls 0.23.27", + "rustls-native-certs 0.8.1", "rustls-platform-verifier-android", - "rustls-webpki", + "rustls-webpki 0.103.3", "security-framework 3.2.0", "security-framework-sys", "webpki-root-certs 0.26.11", @@ -9939,12 +10540,23 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "rustls-webpki" version = "0.103.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" dependencies = [ + "aws-lc-rs", "ring", "rustls-pki-types", "untrusted", @@ -10295,6 +10907,16 @@ dependencies = [ "tracing", ] +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "sea-bae" version = "0.2.1" @@ -10876,7 +11498,7 @@ dependencies = [ "base64 0.22.1", "bytes", "futures", - "http", + "http 1.3.1", "httparse", "log", "rand 0.8.5", @@ -11478,13 +12100,23 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.12", + "tokio", +] + [[package]] name = "tokio-rustls" version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ - "rustls", + "rustls 0.23.27", "tokio", ] @@ -11508,10 +12140,10 @@ checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" dependencies = [ "futures-util", "log", - "rustls", + "rustls 0.23.27", "rustls-pki-types", "tokio", - "tokio-rustls", + "tokio-rustls 0.26.2", "tungstenite", "webpki-roots 0.26.11", ] @@ -11604,8 +12236,8 @@ dependencies = [ "bytes", "futures-core", "futures-util", - "http", - "http-body", + "http 1.3.1", + "http-body 1.0.1", "http-body-util", "http-range-header", "httpdate", @@ -11821,11 +12453,11 @@ checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" dependencies = [ "bytes", "data-encoding", - "http", + "http 1.3.1", "httparse", "log", "rand 0.9.1", - "rustls", + "rustls 0.23.27", "rustls-pki-types", "sha1", "thiserror 2.0.12", @@ -11976,6 +12608,12 @@ dependencies = [ "serde", ] +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + [[package]] name = "utf-8" version = "0.7.6" @@ -12076,6 +12714,12 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "vsimd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" + [[package]] name = "wait-timeout" version = "0.2.1" @@ -12294,6 +12938,18 @@ dependencies = [ "rustls-pki-types", ] +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix 0.38.44", +] + [[package]] name = "whoami" version = "1.6.0" @@ -12939,6 +13595,12 @@ dependencies = [ "rustix 1.0.7", ] +[[package]] +name = "xmlparser" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4" + [[package]] name = "yansi" version = "1.0.1" diff --git a/README.md b/README.md index 7aa9aa3e..db7e39a2 100644 --- a/README.md +++ b/README.md @@ -122,19 +122,36 @@ To run a sequencer node you should build the binary in release mode using the in Then, you can run the sequencer node with the following command: +### Using Private Key File ```sh ./target/release/rollup-node node --chain dev -d --sequencer.enabled --signer.key-file /path/to/your/private.key --http --http.api admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,miner,mev ``` -**Note**: When running a sequencer, a signer key file is required unless the `--test` flag is specified. Use the `--signer.key-file` option to specify the path to your private key file. Keep your private key file secure and never commit it to version control. +**Note**: The private key file should contain a hex-encoded private key (`64` characters, optionally prefixed with `0x`). -This will start a dev node in sequencer mode with all rpc apis enabled. You can adjust the `--http.api` flag to include or exclude specific APIs as needed. +### Using AWS KMS +```sh +./target/release/rollup-node node --chain dev -d --sequencer.enabled --signer.aws-kms-key-id arn:aws:kms:REGION:ACCOUNT:key/KEY-ID --http --http.api admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,miner,mev +``` + +### Signer Configuration Notes + +When running a sequencer, a signer is required unless the `--test` flag is specified. The two signing methods are mutually exclusive - use either `--signer.key-file` or `--signer.aws-kms-key-id`, but not both. + +**Private Key File**: Keep your private key file secure and never commit it to version control. + +**AWS KMS**: Requires KMS permissions `kms:GetPublicKey` and `kms:Sign` for the specified key. + +### General Information + +The above commands will start a dev node in sequencer mode with all rpc apis enabled. You can adjust the `--http.api` flag to include or exclude specific APIs as needed. The chain will be configured with a genesis that funds 20 addresses derived from the mnemonic: ``` test test test test test test test test test test test junk ``` +### Configuration Options A list of sequencer specific configuration options can be seen below: @@ -150,7 +167,9 @@ A list of sequencer specific configuration options can be seen below: --fee-recipient The fee recipient for the sequencer [default: 0x5300000000000000000000000000000000000005] --signer.key-file - Path to the signer's hex-encoded private key file (optional 0x prefix). Required when sequencer is enabled + Path to the hex-encoded private key file for the signer (optional 0x prefix). Mutually exclusive with AWS KMS key ID + --signer.aws-kms-key-id + AWS KMS Key ID or ARN for signing transactions. Mutually exclusive with key file ``` ## Contributing diff --git a/crates/node/Cargo.toml b/crates/node/Cargo.toml index bf25aea7..0d19faeb 100644 --- a/crates/node/Cargo.toml +++ b/crates/node/Cargo.toml @@ -19,6 +19,8 @@ alloy-primitives.workspace = true alloy-provider.workspace = true alloy-rpc-client.workspace = true alloy-signer-local.workspace = true +alloy-signer-aws = "1.0.9" +alloy-signer = "1.0.9" alloy-transport.workspace = true scroll-alloy-consensus.workspace = true @@ -59,6 +61,10 @@ rollup-node-sequencer.workspace = true rollup-node-signer.workspace = true rollup-node-watcher.workspace = true +# AWS dependencies +aws-config = "1.8.0" +aws-sdk-kms = "1.76.0" + # test-utils alloy-rpc-types-engine = { workspace = true, optional = true } reth-e2e-test-utils = { workspace = true, optional = true } diff --git a/crates/node/src/add_ons/rollup.rs b/crates/node/src/add_ons/rollup.rs index c4e0d620..89ab172d 100644 --- a/crates/node/src/add_ons/rollup.rs +++ b/crates/node/src/add_ons/rollup.rs @@ -3,9 +3,9 @@ use crate::{ constants::PROVIDER_BLOB_CACHE_SIZE, }; -use alloy_primitives::hex; use alloy_provider::ProviderBuilder; use alloy_rpc_client::RpcClient; +use alloy_signer::Result; use alloy_signer_local::PrivateKeySigner; use alloy_transport::layers::RetryBackoffLayer; use reth_chainspec::{EthChainSpec, NamedChain}; @@ -33,7 +33,7 @@ use scroll_engine::{EngineDriver, ForkchoiceState}; use scroll_migration::traits::ScrollMigrator; use scroll_network::ScrollNetworkManager; use scroll_wire::{ScrollWireConfig, ScrollWireProtocolHandler}; -use std::{fs, sync::Arc, time::Duration}; +use std::{sync::Arc, time::Duration}; use tokio::sync::mpsc::Sender; /// Implementing the trait allows the type to return whether it is configured for dev chain. @@ -213,30 +213,12 @@ impl RollupManagerAddOn { // Instantiate the signer let signer = if self.config.test { + // Use a random private key signer for testing Some(Signer::spawn(PrivateKeySigner::random())) - } else if let Some(key_file_path) = &self.config.signer_args.key_file { - let key_content = fs::read_to_string(key_file_path) - .map_err(|e| { - eyre::eyre!("Failed to read signer key file {}: {}", key_file_path.display(), e) - })? - .trim() - .to_string(); - - let hex_str = key_content.strip_prefix("0x").unwrap_or(&key_content); - let key_bytes = hex::decode(hex_str).map_err(|e| { - eyre::eyre!( - "Failed to decode hex private key from file {}: {}", - key_file_path.display(), - e - ) - })?; - - let private_key_signer = PrivateKeySigner::from_slice(&key_bytes) - .map_err(|e| eyre::eyre!("Failed to create signer from key file: {}", e))?; - - Some(Signer::spawn(private_key_signer)) } else { - None + // Use the signer configured by SignerArgs + let chain_id = ctx.config.chain.chain().id(); + self.config.signer_args.signer(chain_id).await?.map(Signer::spawn) }; // Spawn the rollup node manager diff --git a/crates/node/src/args.rs b/crates/node/src/args.rs index 164f8fa6..4a932bc3 100644 --- a/crates/node/src/args.rs +++ b/crates/node/src/args.rs @@ -1,8 +1,12 @@ use crate::constants; -use alloy_primitives::Address; +use alloy_primitives::{hex, Address}; +use alloy_signer::Signer; +use alloy_signer_aws::AwsSigner; +use alloy_signer_local::PrivateKeySigner; +use aws_sdk_kms::config::BehaviorVersion; use reth_scroll_chainspec::SCROLL_FEE_VAULT_ADDRESS; use rollup_node_sequencer::L1MessageInclusionMode; -use std::path::PathBuf; +use std::{fs, path::PathBuf}; /// A struct that represents the arguments for the rollup node. #[derive(Debug, Clone, clap::Args)] @@ -34,13 +38,15 @@ pub struct ScrollRollupNodeConfig { } impl ScrollRollupNodeConfig { - /// Validate that signer key file is provided when sequencer is enabled + /// Validate that either signer key file or AWS KMS key ID is provided when sequencer is enabled pub fn validate(&self) -> Result<(), String> { - if !self.test && - self.sequencer_args.sequencer_enabled && - self.signer_args.key_file.is_none() - { - return Err("Signer key file is required when sequencer is enabled".to_string()); + if !self.test && self.sequencer_args.sequencer_enabled { + if self.signer_args.key_file.is_none() && self.signer_args.aws_kms_key_id.is_none() { + return Err("Either signer key file or AWS KMS key ID is required when sequencer is enabled".to_string()); + } + if self.signer_args.key_file.is_some() && self.signer_args.aws_kms_key_id.is_some() { + return Err("Cannot specify both signer key file and AWS KMS key ID".to_string()); + } } Ok(()) } @@ -146,9 +152,77 @@ pub struct SignerArgs { #[arg( long = "signer.key-file", value_name = "FILE_PATH", - help = "Path to the signer's hex-encoded private key file (optional 0x prefix). Required when sequencer is enabled" + help = "Path to the hex-encoded private key file for the signer (optional 0x prefix). Mutually exclusive with AWS KMS key ID" )] pub key_file: Option, + + /// AWS KMS Key ID for signing transactions + #[arg( + long = "signer.aws-kms-key-id", + value_name = "KEY_ID", + help = "AWS KMS Key ID for signing transactions. Mutually exclusive with key file" + )] + pub aws_kms_key_id: Option, +} + +impl SignerArgs { + /// Create a signer based on the configured arguments + pub async fn signer( + &self, + chain_id: u64, + ) -> eyre::Result>> { + if let Some(key_file_path) = &self.key_file { + // Load the private key from the file + let key_content = fs::read_to_string(key_file_path) + .map_err(|e| { + eyre::eyre!("Failed to read signer key file {}: {}", key_file_path.display(), e) + })? + .trim() + .to_string(); + + let hex_str = key_content.strip_prefix("0x").unwrap_or(&key_content); + let key_bytes = hex::decode(hex_str).map_err(|e| { + eyre::eyre!( + "Failed to decode hex private key from file {}: {}", + key_file_path.display(), + e + ) + })?; + + // Create the private key signer + let private_key_signer = PrivateKeySigner::from_slice(&key_bytes) + .map_err(|e| eyre::eyre!("Failed to create signer from key file: {}", e))? + .with_chain_id(Some(chain_id)); + + tracing::info!( + "Created private key signer with address: {} for chain ID: {}", + private_key_signer.address(), + chain_id + ); + + Ok(Some(Box::new(private_key_signer))) + } else if let Some(aws_kms_key_id) = &self.aws_kms_key_id { + // Load AWS configuration + let config_loader = aws_config::defaults(BehaviorVersion::latest()); + let config = config_loader.load().await; + let kms_client = aws_sdk_kms::Client::new(&config); + + // Create the AWS KMS signer + let aws_signer = AwsSigner::new(kms_client, aws_kms_key_id.clone(), Some(chain_id)) + .await + .map_err(|e| eyre::eyre!("Failed to initialize AWS KMS signer: {}", e))?; + + tracing::info!( + "Created AWS KMS signer with address: {} for chain ID: {}", + aws_signer.address(), + chain_id + ); + + Ok(Some(Box::new(aws_signer))) + } else { + Ok(None) + } + } } #[cfg(test)] @@ -157,11 +231,34 @@ mod tests { use std::path::PathBuf; #[test] - fn test_validate_sequencer_enabled_without_key_file_fails() { + fn test_validate_sequencer_enabled_without_any_signer_fails() { let config = ScrollRollupNodeConfig { test: false, sequencer_args: SequencerArgs { sequencer_enabled: true, ..Default::default() }, - signer_args: SignerArgs { key_file: None }, + signer_args: SignerArgs { key_file: None, aws_kms_key_id: None }, + database_args: DatabaseArgs::default(), + engine_driver_args: EngineDriverArgs::default(), + l1_provider_args: L1ProviderArgs::default(), + beacon_provider_args: BeaconProviderArgs::default(), + network_args: NetworkArgs::default(), + }; + + let result = config.validate(); + assert!(result.is_err()); + assert!(result.unwrap_err().contains( + "Either signer key file or AWS KMS key ID is required when sequencer is enabled" + )); + } + + #[test] + fn test_validate_sequencer_enabled_with_both_signers_fails() { + let config = ScrollRollupNodeConfig { + test: false, + sequencer_args: SequencerArgs { sequencer_enabled: true, ..Default::default() }, + signer_args: SignerArgs { + key_file: Some(PathBuf::from("/path/to/key")), + aws_kms_key_id: Some("key-id".to_string()), + }, database_args: DatabaseArgs::default(), engine_driver_args: EngineDriverArgs::default(), l1_provider_args: L1ProviderArgs::default(), @@ -173,7 +270,7 @@ mod tests { assert!(result.is_err()); assert!(result .unwrap_err() - .contains("Signer key file is required when sequencer is enabled")); + .contains("Cannot specify both signer key file and AWS KMS key ID")); } #[test] @@ -181,7 +278,26 @@ mod tests { let config = ScrollRollupNodeConfig { test: false, sequencer_args: SequencerArgs { sequencer_enabled: true, ..Default::default() }, - signer_args: SignerArgs { key_file: Some(PathBuf::from("/path/to/key")) }, + signer_args: SignerArgs { + key_file: Some(PathBuf::from("/path/to/key")), + aws_kms_key_id: None, + }, + database_args: DatabaseArgs::default(), + engine_driver_args: EngineDriverArgs::default(), + l1_provider_args: L1ProviderArgs::default(), + beacon_provider_args: BeaconProviderArgs::default(), + network_args: NetworkArgs::default(), + }; + + assert!(config.validate().is_ok()); + } + + #[test] + fn test_validate_sequencer_enabled_with_aws_kms_succeeds() { + let config = ScrollRollupNodeConfig { + test: false, + sequencer_args: SequencerArgs { sequencer_enabled: true, ..Default::default() }, + signer_args: SignerArgs { key_file: None, aws_kms_key_id: Some("key-id".to_string()) }, database_args: DatabaseArgs::default(), engine_driver_args: EngineDriverArgs::default(), l1_provider_args: L1ProviderArgs::default(), @@ -193,11 +309,11 @@ mod tests { } #[test] - fn test_validate_test_mode_without_key_file_succeeds() { + fn test_validate_test_mode_without_any_signer_succeeds() { let config = ScrollRollupNodeConfig { test: true, sequencer_args: SequencerArgs { sequencer_enabled: true, ..Default::default() }, - signer_args: SignerArgs { key_file: None }, + signer_args: SignerArgs { key_file: None, aws_kms_key_id: None }, database_args: DatabaseArgs::default(), engine_driver_args: EngineDriverArgs::default(), l1_provider_args: L1ProviderArgs::default(), @@ -209,11 +325,11 @@ mod tests { } #[test] - fn test_validate_sequencer_disabled_without_key_file_succeeds() { + fn test_validate_sequencer_disabled_without_any_signer_succeeds() { let config = ScrollRollupNodeConfig { test: false, sequencer_args: SequencerArgs { sequencer_enabled: false, ..Default::default() }, - signer_args: SignerArgs { key_file: None }, + signer_args: SignerArgs { key_file: None, aws_kms_key_id: None }, database_args: DatabaseArgs::default(), engine_driver_args: EngineDriverArgs::default(), l1_provider_args: L1ProviderArgs::default(), diff --git a/crates/sequencer/tests/e2e.rs b/crates/sequencer/tests/e2e.rs index bf48f25e..e79d29db 100644 --- a/crates/sequencer/tests/e2e.rs +++ b/crates/sequencer/tests/e2e.rs @@ -443,7 +443,10 @@ async fn can_sequence_blocks_with_private_key_file() -> eyre::Result<()> { ..SequencerArgs::default() }, beacon_provider_args: BeaconProviderArgs::default(), - signer_args: SignerArgs { key_file: Some(temp_file.path().to_path_buf()) }, + signer_args: SignerArgs { + key_file: Some(temp_file.path().to_path_buf()), + aws_kms_key_id: None, + }, }; let (nodes, _tasks, wallet) = setup_engine(rollup_manager_args, 1, chain_spec, false).await?; @@ -524,7 +527,10 @@ async fn can_sequence_blocks_with_hex_key_file_without_prefix() -> eyre::Result< ..SequencerArgs::default() }, beacon_provider_args: BeaconProviderArgs::default(), - signer_args: SignerArgs { key_file: Some(temp_file.path().to_path_buf()) }, + signer_args: SignerArgs { + key_file: Some(temp_file.path().to_path_buf()), + aws_kms_key_id: None, + }, }; let (nodes, _tasks, wallet) = setup_engine(rollup_manager_args, 1, chain_spec, false).await?;