From 38c94f370b9b4f054bd2f48bbc13b3c9e14af063 Mon Sep 17 00:00:00 2001 From: eloylp Date: Thu, 6 Feb 2025 15:49:28 +0100 Subject: [PATCH] fix: prevent compute unit calculations to exceed the max cp limit (#26) --- Cargo.lock | 344 ++++++++++++++------------ Cargo.toml | 1 + crates/effective-tx-sender/Cargo.toml | 1 + crates/effective-tx-sender/src/lib.rs | 2 + 4 files changed, 183 insertions(+), 165 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 56b754d..bdfd9cd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -178,7 +178,7 @@ dependencies = [ "proc-macro-error", "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -194,7 +194,7 @@ dependencies = [ "proc-macro-error", "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", "syn-solidity", "tiny-keccak", ] @@ -210,7 +210,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", "syn-solidity", ] @@ -627,7 +627,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -649,18 +649,18 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] name = "async-trait" -version = "0.1.85" +version = "0.1.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" +checksum = "644dd749086bf3771a2fbc5f256fdb982d53f011c7d5d560304eafeecebce79d" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -688,7 +688,7 @@ checksum = "e12882f59de5360c748c4cbf569a042d5fb0eb515f7bea9c1f470b47f6ffbd73" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -914,7 +914,7 @@ dependencies = [ "http 1.2.0", "http-body 1.0.1", "http-body-util", - "hyper 1.5.2", + "hyper 1.6.0", "hyper-util", "itoa", "matchit", @@ -1064,7 +1064,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1216,7 +1216,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1283,9 +1283,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.16.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "bv" @@ -1342,7 +1342,7 @@ checksum = "3fa76293b4f7bb636ab88fd78228235b5248b4d05cc589aed610f954af5d7c7a" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1353,9 +1353,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" +checksum = "f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9" [[package]] name = "bzip2" @@ -1390,9 +1390,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.10" +version = "1.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229" +checksum = "755717a7de9ec452bf7f3f1a3099085deabd7f2962b861dae91ecd7a365903d2" dependencies = [ "jobserver", "libc", @@ -1510,9 +1510,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.27" +version = "4.5.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "769b0145982b4b48713e01ec42d61614425f27b7058bda7180a3a41f30104796" +checksum = "3e77c3243bd94243c03672cb5154667347c457ca271254724f9f393aee1c05ff" dependencies = [ "clap_builder", "clap_derive", @@ -1532,14 +1532,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.24" +version = "4.5.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c" +checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed" dependencies = [ "heck 0.5.0", "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1733,9 +1733,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -1868,7 +1868,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1892,7 +1892,7 @@ dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", "strsim 0.11.1", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1903,7 +1903,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1979,15 +1979,15 @@ dependencies = [ [[package]] name = "derive_more" -version = "0.99.18" +version = "0.99.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f" dependencies = [ "convert_case", "proc-macro2 1.0.93", "quote 1.0.38", "rustc_version 0.4.1", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -2079,7 +2079,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -2102,7 +2102,7 @@ checksum = "a6cbae11b3de8fce2a456e8ea3dada226b35fe791f0dc1d360c0941f0bb681f3" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -2218,6 +2218,7 @@ dependencies = [ "futures 0.3.31", "itertools 0.13.0", "solana-client", + "solana-compute-budget", "solana-sdk", "thiserror 1.0.69", "tracing", @@ -2280,7 +2281,7 @@ checksum = "a1ab991c1362ac86c61ab6f556cff143daa22e5a15e4e189df818b2fd19fe65b" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -2293,7 +2294,7 @@ dependencies = [ "num-traits", "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -2366,15 +2367,6 @@ dependencies = [ "ieee754", ] -[[package]] -name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - [[package]] name = "fastrand" version = "2.3.0" @@ -2591,9 +2583,9 @@ dependencies = [ [[package]] name = "futures-concurrency" -version = "7.6.2" +version = "7.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b724496da7c26fcce66458526ce68fc2ecf4aaaa994281cf322ded5755520c" +checksum = "0eb68017df91f2e477ed4bea586c59eaecaa47ed885a770d0444e21e62572cd2" dependencies = [ "fixedbitset 0.5.7", "futures-buffered", @@ -2630,17 +2622,15 @@ checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" -version = "1.13.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" dependencies = [ - "fastrand 1.9.0", + "fastrand", "futures-core", "futures-io", - "memchr", "parking", "pin-project-lite", - "waker-fn", ] [[package]] @@ -2651,7 +2641,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -2772,6 +2762,18 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "getrandom" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.13.3+wasi-0.2.2", + "windows-targets 0.52.6", +] + [[package]] name = "gimli" version = "0.28.1" @@ -3110,9 +3112,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.9.5" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" +checksum = "f2d708df4e7140240a16cd6ab0ab65c972d7433ab77819ea693fde9c43811e2a" [[package]] name = "httpdate" @@ -3152,9 +3154,9 @@ dependencies = [ [[package]] name = "hyper" -version = "1.5.2" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ "bytes", "futures-channel", @@ -3211,14 +3213,14 @@ checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", "http 1.2.0", - "hyper 1.5.2", + "hyper 1.6.0", "hyper-util", - "rustls 0.23.21", + "rustls 0.23.22", "rustls-pki-types", "tokio", "tokio-rustls 0.26.1", "tower-service", - "webpki-roots 0.26.7", + "webpki-roots 0.26.8", ] [[package]] @@ -3239,7 +3241,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ - "hyper 1.5.2", + "hyper 1.6.0", "hyper-util", "pin-project-lite", "tokio", @@ -3270,7 +3272,7 @@ dependencies = [ "futures-util", "http 1.2.0", "http-body 1.0.1", - "hyper 1.5.2", + "hyper 1.6.0", "pin-project-lite", "socket2", "tokio", @@ -3416,7 +3418,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -3496,7 +3498,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -3555,9 +3557,9 @@ dependencies = [ [[package]] name = "indicatif" -version = "0.17.9" +version = "0.17.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf675b85ed934d3c67b5c5469701eec7db22689d0a2139d856e0925fa28b281" +checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" dependencies = [ "console", "number_prefix", @@ -4293,7 +4295,7 @@ dependencies = [ "cfg-if 1.0.0", "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -4338,9 +4340,9 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "native-tls" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +checksum = "0dab59f8e050d5df8e4dd87d9206fb6f65a483e20ac9fda365ade4fab353196c" dependencies = [ "libc", "log", @@ -4473,7 +4475,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -4546,7 +4548,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -4587,9 +4589,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.68" +version = "0.10.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" +checksum = "61cfb4e166a8bb8c9b55c500bc2308550148ece889be90f609377e58140f42c6" dependencies = [ "bitflags 2.8.0", "cfg-if 1.0.0", @@ -4608,14 +4610,14 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] name = "openssl-probe" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-src" @@ -4628,9 +4630,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.104" +version = "0.9.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" +checksum = "8b22d5b84be05a8d6947c7cb71f7c849aa0f112acd4bf51c2a7c1c988ac0a9dc" dependencies = [ "cc", "libc", @@ -4924,7 +4926,7 @@ dependencies = [ "pest_meta", "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -4950,22 +4952,22 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e2ec53ad785f4d35dac0adea7f7dc6f1bb277ad84a680c7afefeae05d1f5916" +checksum = "dfe2e71e1471fe07709406bf725f710b02927c9c54b2b5b2ec0e8087d97c327d" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb" +checksum = "f6e859e6e5bd50440ab63c47e3ebabc90f26251f7c73c3d3e837b74a1cc3fa67" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -5274,7 +5276,7 @@ dependencies = [ "itertools 0.13.0", "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -5332,7 +5334,7 @@ checksum = "9e2e25ee72f5b24d773cae88422baddefff7714f97aab68d96fe2b6fc4a28fb2" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -5383,8 +5385,8 @@ dependencies = [ "pin-project-lite", "quinn-proto 0.11.9", "quinn-udp 0.5.9", - "rustc-hash 2.1.0", - "rustls 0.23.21", + "rustc-hash 2.1.1", + "rustls 0.23.22", "socket2", "thiserror 2.0.11", "tokio", @@ -5419,8 +5421,8 @@ dependencies = [ "getrandom 0.2.15", "rand 0.8.5", "ring 0.17.8", - "rustc-hash 2.1.0", - "rustls 0.23.21", + "rustc-hash 2.1.1", + "rustls 0.23.22", "rustls-pki-types", "slab", "thiserror 2.0.11", @@ -5668,7 +5670,7 @@ checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -5827,7 +5829,7 @@ dependencies = [ "http 1.2.0", "http-body 1.0.1", "http-body-util", - "hyper 1.5.2", + "hyper 1.6.0", "hyper-rustls 0.27.5", "hyper-util", "ipnet", @@ -5838,7 +5840,7 @@ dependencies = [ "percent-encoding 2.3.1", "pin-project-lite", "quinn 0.11.6", - "rustls 0.23.21", + "rustls 0.23.22", "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", @@ -5855,7 +5857,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 0.26.7", + "webpki-roots 0.26.8", "windows-registry", ] @@ -6104,9 +6106,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc-hash" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] name = "rustc-hex" @@ -6168,9 +6170,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.21" +version = "0.23.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f287924602bf649d949c63dc8ac8b235fa5387d394020705b80c4eb597ce5b8" +checksum = "9fb9263ab4eb695e42321db096e3b8fbd715a59b154d5c88d82db2175b681ba7" dependencies = [ "once_cell", "ring 0.17.8", @@ -6212,9 +6214,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" +checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" dependencies = [ "web-time", ] @@ -6260,9 +6262,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" [[package]] name = "same-file" @@ -6275,9 +6277,9 @@ dependencies = [ [[package]] name = "scc" -version = "2.3.0" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28e1c91382686d21b5ac7959341fcb9780fa7c03773646995a87c950fa7be640" +checksum = "ea091f6cac2595aa38993f04f4ee692ed43757035c36e67c180b6828356385b1" dependencies = [ "sdd", ] @@ -6320,7 +6322,7 @@ checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -6335,9 +6337,9 @@ dependencies = [ [[package]] name = "sdd" -version = "3.0.5" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478f121bb72bbf63c52c93011ea1791dca40140dfe13f8336c4c5ac952c33aa9" +checksum = "b07779b9b918cc05650cb30f404d4d7835d26df37c235eded8a6832e2fb82cca" [[package]] name = "seahash" @@ -6450,14 +6452,14 @@ checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] name = "serde_json" -version = "1.0.137" +version = "1.0.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "930cfb6e6abf99298aaad7d29abbef7a9999a9a8806a40088f55f0dcec03146b" +checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949" dependencies = [ "itoa", "memchr", @@ -6533,7 +6535,7 @@ dependencies = [ "darling", "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -6545,7 +6547,7 @@ dependencies = [ "darling", "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -6583,7 +6585,7 @@ checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -6925,7 +6927,7 @@ dependencies = [ "solana-listener", "temp-env", "tokio", - "toml 0.8.19", + "toml 0.8.20", "tracing-error", "tracing-subscriber", ] @@ -8211,7 +8213,7 @@ dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", "rustversion", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -8850,7 +8852,7 @@ checksum = "d9e8418ea6269dcfb01c712f0444d2c75542c04448b480e87de59d2865edc750" dependencies = [ "quote 1.0.38", "spl-discriminator-syn", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -8862,7 +8864,7 @@ dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", "sha2 0.10.8", - "syn 2.0.96", + "syn 2.0.98", "thiserror 1.0.69", ] @@ -8926,7 +8928,7 @@ dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", "sha2 0.10.8", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -9272,9 +9274,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.96" +version = "2.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" +checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", @@ -9290,7 +9292,7 @@ dependencies = [ "paste", "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -9328,7 +9330,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -9447,13 +9449,13 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.15.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704" +checksum = "38c246215d7d24f48ae091a2902398798e05d978b24315d6efbc00ede9a8bb91" dependencies = [ "cfg-if 1.0.0", - "fastrand 2.3.0", - "getrandom 0.2.15", + "fastrand", + "getrandom 0.3.1", "once_cell", "rustix", "windows-sys 0.59.0", @@ -9492,7 +9494,7 @@ checksum = "888d0c3c6db53c0fdab160d2ed5e12ba745383d3e85813f2ea0f2b1475ab553f" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -9536,7 +9538,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -9547,7 +9549,7 @@ checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -9681,7 +9683,7 @@ checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -9710,7 +9712,7 @@ version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" dependencies = [ - "rustls 0.23.21", + "rustls 0.23.22", "tokio", ] @@ -9796,9 +9798,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" dependencies = [ "serde", "serde_spanned", @@ -9817,9 +9819,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.22" +version = "0.22.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +checksum = "02a8b472d1a3d7c18e2d61a489aee3453fd9031c33e4f55bd533f4a7adca1bee" dependencies = [ "indexmap 2.7.1", "serde", @@ -9874,7 +9876,7 @@ dependencies = [ "http 1.2.0", "http-body 1.0.1", "http-body-util", - "hyper 1.5.2", + "hyper 1.6.0", "hyper-timeout 0.5.2", "hyper-util", "percent-encoding 2.3.1", @@ -9986,7 +9988,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -10138,7 +10140,7 @@ checksum = "1f718dfaf347dcb5b983bfc87608144b0bad87970aebcbea5ce44d2a30c08e63" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -10149,7 +10151,7 @@ checksum = "560b82d656506509d43abe30e0ba64c56b1953ab3d4fe7ba5902747a7a3cedd5" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -10182,7 +10184,7 @@ checksum = "603329303137e0d59238ee4d6b9c085eada8e2a9d20666f3abd9dadf8f8543f4" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -10217,9 +10219,9 @@ checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" [[package]] name = "unicode-ident" -version = "1.0.14" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" +checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" [[package]] name = "unicode-normalization" @@ -10350,11 +10352,11 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.12.1" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3758f5e68192bb96cc8f9b7e2c2cfdabb435499a28499a42f8f984092adad4b" +checksum = "ced87ca4be083373936a67f8de945faa23b6b42384bd5b64434850802c6dccd0" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.3.1", "serde", ] @@ -10418,19 +10420,13 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" [[package]] name = "wait-timeout" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" dependencies = [ "libc", ] -[[package]] -name = "waker-fn" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" - [[package]] name = "walkdir" version = "2.5.0" @@ -10462,6 +10458,15 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasi" +version = "0.13.3+wasi-0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] + [[package]] name = "wasm-bindgen" version = "0.2.100" @@ -10484,7 +10489,7 @@ dependencies = [ "log", "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", "wasm-bindgen-shared", ] @@ -10519,7 +10524,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -10583,9 +10588,9 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webpki-roots" -version = "0.26.7" +version = "0.26.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" +checksum = "2210b291f7ea53617fbafcc4939f10914214ec15aace5ba62293a668f322c5c9" dependencies = [ "rustls-pki-types", ] @@ -10843,9 +10848,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.24" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a" +checksum = "86e376c75f4f43f44db463cf729e0d3acbf954d13e22c51e26e4c264b4ab545f" dependencies = [ "memchr", ] @@ -10860,6 +10865,15 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags 2.8.0", +] + [[package]] name = "write16" version = "1.0.0" @@ -10929,7 +10943,7 @@ checksum = "32ac00cd3f8ec9c1d33fb3e7958a82df6989c42d747bd326c822b1d625283547" name = "xtask" version = "0.1.0" dependencies = [ - "clap 4.5.27", + "clap 4.5.28", "color-eyre", "eyre", "xshell", @@ -10961,7 +10975,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", "synstructure 0.13.1", ] @@ -10983,7 +10997,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -11003,7 +11017,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", "synstructure 0.13.1", ] @@ -11024,7 +11038,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -11046,7 +11060,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2 1.0.93", "quote 1.0.38", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 1b1cae0..3b00c8e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -155,6 +155,7 @@ solana-rpc-client-api = "=2.0.16" solana-program = "=2.0.16" solana-sdk = "=2.0.16" solana-transaction-status = "=2.0.16" +solana-compute-budget = "=2.0.16" # Async tokio = { version = "1", features = ["rt", "signal", "rt-multi-thread", "macros"] } diff --git a/crates/effective-tx-sender/Cargo.toml b/crates/effective-tx-sender/Cargo.toml index 052fdfe..d136062 100644 --- a/crates/effective-tx-sender/Cargo.toml +++ b/crates/effective-tx-sender/Cargo.toml @@ -12,6 +12,7 @@ eyre.workspace = true thiserror.workspace = true solana-sdk.workspace = true solana-client.workspace = true +solana-compute-budget.workspace = true itertools.workspace = true futures.workspace = true tracing.workspace = true diff --git a/crates/effective-tx-sender/src/lib.rs b/crates/effective-tx-sender/src/lib.rs index 8ec7953..f50df6f 100644 --- a/crates/effective-tx-sender/src/lib.rs +++ b/crates/effective-tx-sender/src/lib.rs @@ -12,6 +12,7 @@ use futures::TryFutureExt as _; use itertools::Itertools as _; use solana_client::nonblocking::rpc_client::RpcClient; use solana_client::rpc_response::RpcSimulateTransactionResult; +use solana_compute_budget::compute_budget_processor::MAX_COMPUTE_UNIT_LIMIT; use solana_sdk::compute_budget::ComputeBudgetInstruction; use solana_sdk::instruction::Instruction; use solana_sdk::signature::{Keypair, Signature}; @@ -198,6 +199,7 @@ pub(crate) async fn compute_budget( .checked_div(PERCENT_POINTS_TO_TOP_UP) .unwrap_or(0); let compute_budget = computed_units.saturating_add(top_up); + let compute_budget = compute_budget.min(u64::from(MAX_COMPUTE_UNIT_LIMIT)); // Safe conversion since we move from an u32 to u64 let ix = ComputeBudgetInstruction::set_compute_unit_limit( compute_budget .try_into()