diff --git a/Cargo.lock b/Cargo.lock index ba0eeeb..9617713 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -211,7 +211,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0bb0e0911ad4a70cab880cdd6287fe1e880a1a9d8e4e6defa8e9044b9796a6c" dependencies = [ "anchor-syn", - "borsh-derive-internal 0.10.4", + "borsh-derive-internal 0.9.3", "proc-macro2", "quote", "syn 1.0.109", @@ -247,7 +247,7 @@ dependencies = [ "arrayref", "base64 0.21.7", "bincode", - "borsh 0.10.4", + "borsh 0.9.3", "bytemuck", "getrandom 0.2.15", "solana-program 1.18.26", @@ -324,9 +324,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.17" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23a1e53f0f5d86382dafe1cf314783b2044280f406e7e1506368220ad11b1338" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -339,9 +339,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8365de52b16c035ff4fcafe0092ba9390540e3e352870ac09933bebcaa2c8c56" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" @@ -373,9 +373,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.91" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8" +checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" [[package]] name = "aquamarine" @@ -551,7 +551,7 @@ dependencies = [ "proc-macro2", "quote", "syn 1.0.109", - "synstructure", + "synstructure 0.12.6", ] [[package]] @@ -584,9 +584,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.17" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cb8f1d480b0ea3783ab015936d2a55c87e219676f0c0b7dec61494043f21857" +checksum = "df895a515f70646414f4b45c0b79082783b80552b373a68283012928df56f522" dependencies = [ "brotli", "flate2", @@ -613,7 +613,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -713,9 +713,9 @@ dependencies = [ [[package]] name = "blake3" -version = "1.5.1" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cca6d3674597c30ddf2c587bf8d9d65c9a84d2326d941cc79c9842dfe0ef52" +checksum = "b8ee0c1824c4dea5b5f81736aff91bae041d2c07ee1192bec91054e10e3e601e" dependencies = [ "arrayref", "arrayvec", @@ -767,16 +767,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "115e54d64eb62cdebad391c19efc9dce4981c690c85a33a12199d99bb9546fee" dependencies = [ "borsh-derive 0.10.4", - "hashbrown 0.13.2", + "hashbrown 0.11.2", ] [[package]] name = "borsh" -version = "1.5.1" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6362ed55def622cddc70a4746a68554d7b687713770de539e59a739b249f8ed" +checksum = "2506947f73ad44e344215ccd6403ac2ae18cd8e046e581a441bf8d199f257f03" dependencies = [ - "borsh-derive 1.5.1", + "borsh-derive 1.5.3", "cfg_aliases", ] @@ -808,16 +808,15 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.1" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b" +checksum = "c2593a3b8b938bd68373196c9832f516be11fa487ef4ae745eb282e6a56a7244" dependencies = [ "once_cell", "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.85", - "syn_derive", + "syn 2.0.90", ] [[package]] @@ -918,9 +917,9 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" +checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a" dependencies = [ "bytemuck_derive", ] @@ -933,7 +932,7 @@ checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -944,9 +943,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" [[package]] name = "bzip2" @@ -1001,9 +1000,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.31" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f" +checksum = "27f657647bcff5394bf56c7317665bbf790a137a50eaaa5c6bfbb9e27a518f2d" dependencies = [ "jobserver", "libc", @@ -1024,9 +1023,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" dependencies = [ "android-tzdata", "iana-time-zone", @@ -1066,7 +1065,7 @@ dependencies = [ "bitflags 1.3.2", "strsim 0.8.0", "textwrap 0.11.0", - "unicode-width", + "unicode-width 0.1.14", "vec_map", ] @@ -1088,9 +1087,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.20" +version = "4.5.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" +checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" dependencies = [ "clap_builder", "clap_derive", @@ -1098,13 +1097,13 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.20" +version = "4.5.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" +checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838" dependencies = [ "anstream", "anstyle", - "clap_lex 0.7.2", + "clap_lex 0.7.4", "strsim 0.11.1", ] @@ -1117,7 +1116,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -1131,9 +1130,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "colorchoice" @@ -1172,7 +1171,7 @@ dependencies = [ "encode_unicode", "lazy_static", "libc", - "unicode-width", + "unicode-width 0.1.14", "windows-sys 0.52.0", ] @@ -1235,9 +1234,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ "libc", ] @@ -1355,7 +1354,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -1366,7 +1365,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -1535,7 +1534,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -1558,7 +1557,7 @@ checksum = "a6cbae11b3de8fce2a456e8ea3dada226b35fe791f0dc1d360c0941f0bb681f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -1658,7 +1657,7 @@ checksum = "a1ab991c1362ac86c61ab6f556cff143daa22e5a15e4e189df818b2fd19fe65b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -1671,7 +1670,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -1717,12 +1716,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1742,9 +1741,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.1.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "feature-probe" @@ -1766,9 +1765,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ "crc32fast", "miniz_oxide", @@ -1860,7 +1859,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -1969,10 +1968,10 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 2.6.0", + "indexmap 2.7.0", "slab", "tokio", - "tokio-util 0.7.12", + "tokio-util 0.7.13", "tracing", ] @@ -2209,6 +2208,124 @@ dependencies = [ "cc", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -2217,12 +2334,23 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", ] [[package]] @@ -2268,9 +2396,9 @@ dependencies = [ [[package]] name = "index_list" -version = "0.2.13" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e6ba961c14e98151cd6416dd3685efe786a94c38bc1a535c06ceff0a1600813" +checksum = "fa38453685e5fe724fd23ff6c1a158c1e2ca21ce0c2718fa11e96e70e99fd4de" [[package]] name = "indexmap" @@ -2285,9 +2413,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", "hashbrown 0.15.2", @@ -2296,24 +2424,15 @@ dependencies = [ [[package]] name = "indicatif" -version = "0.17.8" +version = "0.17.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" +checksum = "cbf675b85ed934d3c67b5c5469701eec7db22689d0a2139d856e0925fa28b281" dependencies = [ "console", - "instant", "number_prefix", "portable-atomic", - "unicode-width", -] - -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if", + "unicode-width 0.2.0", + "web-time", ] [[package]] @@ -2350,9 +2469,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jito-account-traits-derive" @@ -2361,7 +2480,7 @@ source = "git+https://github.com/jito-foundation/restaking.git?rev=eaf88e7e5ca28 dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -2387,7 +2506,7 @@ dependencies = [ "solana-program 1.18.26", "spl-associated-token-account", "spl-token", - "spl-token-2022 3.0.4", + "spl-token-2022 3.0.5", "thiserror", ] @@ -2443,7 +2562,7 @@ dependencies = [ "solana-security-txt", "spl-associated-token-account", "spl-token", - "spl-token-2022 3.0.4", + "spl-token-2022 3.0.5", "thiserror", ] @@ -2474,7 +2593,7 @@ dependencies = [ "borsh 0.10.4", "bytemuck", "chrono", - "clap 4.5.20", + "clap 4.5.23", "env_logger 0.10.2", "jito-bytemuck", "jito-restaking-client", @@ -2504,6 +2623,7 @@ dependencies = [ "num-derive 0.4.2", "num-traits", "serde", + "serde-big-array", "serde_with 3.11.0", "solana-program 1.18.26", "solana-sdk", @@ -2524,6 +2644,8 @@ dependencies = [ "jito-vault-core", "jito-vault-sdk", "meta-merkle-tree", + "serde", + "serde_with 3.11.0", "shank", "solana-program 1.18.26", "spl-associated-token-account", @@ -2596,7 +2718,7 @@ name = "jito-tip-router-shank-cli" version = "0.0.1" dependencies = [ "anyhow", - "clap 4.5.20", + "clap 4.5.23", "env_logger 0.10.2", "envfile", "log", @@ -2635,7 +2757,7 @@ dependencies = [ "solana-program 1.18.26", "spl-associated-token-account", "spl-token", - "spl-token-2022 3.0.4", + "spl-token-2022 3.0.5", "thiserror", ] @@ -2657,7 +2779,7 @@ dependencies = [ "solana-security-txt", "spl-associated-token-account", "spl-token", - "spl-token-2022 3.0.4", + "spl-token-2022 3.0.5", "thiserror", ] @@ -2684,10 +2806,11 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.72" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -2723,9 +2846,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.161" +version = "0.2.168" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" +checksum = "5aaeb2981e0606ca11d79718f8bb01164f1d6ed75080182d3abf017e6d244b6d" [[package]] name = "libredox" @@ -2804,6 +2927,12 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +[[package]] +name = "litemap" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" + [[package]] name = "lock_api" version = "0.4.12" @@ -2943,11 +3072,10 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "hermit-abi 0.3.9", "libc", "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", @@ -3100,7 +3228,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -3181,7 +3309,7 @@ dependencies = [ "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -3190,10 +3318,10 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -3374,7 +3502,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -3426,9 +3554,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" +checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" [[package]] name = "powerfmt" @@ -3529,9 +3657,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.89" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -3553,7 +3681,7 @@ checksum = "9e2e25ee72f5b24d773cae88422baddefff7714f97aab68d96fe2b6fc4a28fb2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -3759,9 +3887,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -3807,7 +3935,7 @@ dependencies = [ "system-configuration", "tokio", "tokio-rustls", - "tokio-util 0.7.12", + "tokio-util 0.7.13", "tower-service", "url", "wasm-bindgen", @@ -3900,15 +4028,15 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.38" +version = "0.38.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a" +checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" dependencies = [ "bitflags 2.6.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4007,7 +4135,7 @@ checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -4060,13 +4188,22 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.214" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ "serde_derive", ] +[[package]] +name = "serde-big-array" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" +dependencies = [ + "serde", +] + [[package]] name = "serde_bytes" version = "0.11.15" @@ -4078,20 +4215,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.214" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] name = "serde_json" -version = "1.0.132" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" +checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" dependencies = [ "itoa", "memchr", @@ -4140,7 +4277,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.6.0", + "indexmap 2.7.0", "serde", "serde_derive", "serde_json", @@ -4157,7 +4294,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -4169,7 +4306,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -4178,7 +4315,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.7.0", "itoa", "ryu", "serde", @@ -4390,9 +4527,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", @@ -4511,7 +4648,7 @@ version = "1.18.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e58fa66e1e240097665e7f87b267aa8e976ea3fcbd86918c8fd218c875395ada" dependencies = [ - "borsh 1.5.1", + "borsh 1.5.3", "futures", "solana-banks-interface", "solana-program 1.18.26", @@ -4634,7 +4771,7 @@ dependencies = [ "dashmap", "futures", "futures-util", - "indexmap 2.6.0", + "indexmap 2.7.0", "indicatif", "log", "quinn", @@ -4690,7 +4827,7 @@ dependencies = [ "bincode", "crossbeam-channel", "futures-util", - "indexmap 2.6.0", + "indexmap 2.7.0", "log", "rand 0.8.5", "rayon", @@ -4760,7 +4897,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -4885,7 +5022,7 @@ dependencies = [ "blake3", "borsh 0.10.4", "borsh 0.9.3", - "borsh 1.5.1", + "borsh 1.5.3", "bs58 0.4.0", "bv", "bytemuck", @@ -4926,9 +5063,9 @@ dependencies = [ [[package]] name = "solana-program" -version = "2.0.14" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2625a23c3813b620141ee447819b08d1b9a5f1c69a309754834e3f35798a21fb" +checksum = "3c75b255c34423a56d35bf695ada268d15112f782771f2a0ad12f28b5fb07cd3" dependencies = [ "ark-bn254", "ark-ec", @@ -4939,7 +5076,7 @@ dependencies = [ "bitflags 2.6.0", "blake3", "borsh 0.10.4", - "borsh 1.5.1", + "borsh 1.5.3", "bs58 0.5.1", "bv", "bytemuck", @@ -4965,7 +5102,7 @@ dependencies = [ "serde_derive", "sha2 0.10.8", "sha3 0.10.8", - "solana-sdk-macro 2.0.14", + "solana-sdk-macro 2.0.4", "thiserror", "wasm-bindgen", ] @@ -5257,7 +5394,7 @@ dependencies = [ "base64 0.21.7", "bincode", "bitflags 2.6.0", - "borsh 1.5.1", + "borsh 1.5.3", "bs58 0.4.0", "bytemuck", "byteorder", @@ -5312,20 +5449,20 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] name = "solana-sdk-macro" -version = "2.0.14" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93a5a1eabc890415d326707afe62cd7a2009236e8d899c1519566fc8f7e3977b" +checksum = "e6073cfb240aa571f11511ea3add3a699a44e7e80c696b34b30a6fc126827c9f" dependencies = [ "bs58 0.5.1", "proc-macro2", "quote", "rustversion", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -5376,7 +5513,7 @@ dependencies = [ "crossbeam-channel", "futures-util", "histogram", - "indexmap 2.6.0", + "indexmap 2.7.0", "itertools", "libc", "log", @@ -5436,7 +5573,7 @@ dependencies = [ "async-trait", "bincode", "futures-util", - "indexmap 2.6.0", + "indexmap 2.7.0", "indicatif", "log", "rayon", @@ -5678,7 +5815,7 @@ checksum = "07fd7858fc4ff8fb0e34090e41d7eb06a823e1057945c26d480bfc21d2338a93" dependencies = [ "quote", "spl-discriminator-syn 0.1.2", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -5689,7 +5826,7 @@ checksum = "d9e8418ea6269dcfb01c712f0444d2c75542c04448b480e87de59d2865edc750" dependencies = [ "quote", "spl-discriminator-syn 0.2.0", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -5701,7 +5838,7 @@ dependencies = [ "proc-macro2", "quote", "sha2 0.10.8", - "syn 2.0.85", + "syn 2.0.90", "thiserror", ] @@ -5714,7 +5851,7 @@ dependencies = [ "proc-macro2", "quote", "sha2 0.10.8", - "syn 2.0.85", + "syn 2.0.90", "thiserror", ] @@ -5724,10 +5861,10 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cc5a6cc7a4f0cf7813ce44153bba73280909f697d7f6baf7b9f223a255e7887" dependencies = [ - "borsh 1.5.1", + "borsh 1.5.3", "num-derive 0.4.2", "num-traits", - "solana-program 2.0.14", + "solana-program 2.0.4", "thiserror", "uint", ] @@ -5760,7 +5897,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c52d84c55efeef8edcc226743dc089d7e3888b8e3474569aa3eff152b37b9996" dependencies = [ - "borsh 1.5.1", + "borsh 1.5.3", "bytemuck", "solana-program 1.18.26", "solana-zk-token-sdk", @@ -5802,7 +5939,7 @@ dependencies = [ "proc-macro2", "quote", "sha2 0.10.8", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -5814,7 +5951,7 @@ dependencies = [ "proc-macro2", "quote", "sha2 0.10.8", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -5886,9 +6023,9 @@ dependencies = [ [[package]] name = "spl-token-2022" -version = "3.0.4" +version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b01d1b2851964e257187c0bca43a0de38d0af59192479ca01ac3e2b58b1bd95a" +checksum = "4c39e416aeb1ea0b22f3b2bbecaf7e38a92a1aa8f4a0c5785c94179694e846a0" dependencies = [ "arrayref", "bytemuck", @@ -5954,7 +6091,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3da00495b602ebcf5d8ba8b3ecff1ee454ce4c125c9077747be49c2d62335ba" dependencies = [ - "borsh 1.5.1", + "borsh 1.5.3", "solana-program 1.18.26", "spl-discriminator 0.2.5", "spl-pod 0.2.5", @@ -6020,6 +6157,12 @@ dependencies = [ "spl-program-error 0.4.4", ] +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "static_assertions" version = "1.1.0" @@ -6091,27 +6234,15 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.85" +version = "2.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56" +checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] -[[package]] -name = "syn_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.85", -] - [[package]] name = "sync_wrapper" version = "0.1.2" @@ -6130,6 +6261,17 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", +] + [[package]] name = "system-configuration" version = "0.5.1" @@ -6199,9 +6341,9 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", "fastrand", @@ -6243,7 +6385,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -6254,7 +6396,7 @@ checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", "test-case-core", ] @@ -6264,7 +6406,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" dependencies = [ - "unicode-width", + "unicode-width 0.1.14", ] [[package]] @@ -6275,22 +6417,22 @@ checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" [[package]] name = "thiserror" -version = "1.0.65" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.65" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -6305,9 +6447,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.36" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" dependencies = [ "deranged", "itoa", @@ -6326,9 +6468,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" dependencies = [ "num-conv", "time-core", @@ -6353,6 +6495,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" version = "1.8.0" @@ -6370,9 +6522,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.0" +version = "1.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" +checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" dependencies = [ "backtrace", "bytes", @@ -6394,7 +6546,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -6425,9 +6577,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", "pin-project-lite", @@ -6466,9 +6618,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" dependencies = [ "bytes", "futures-core", @@ -6513,7 +6665,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.7.0", "toml_datetime", "winnow 0.5.40", ] @@ -6524,7 +6676,7 @@ version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.7.0", "serde", "serde_spanned", "toml_datetime", @@ -6539,9 +6691,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", "pin-project-lite", @@ -6551,20 +6703,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", @@ -6585,9 +6737,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ "sharded-slab", "thread_local", @@ -6639,17 +6791,11 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "unicode-bidi" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" - [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-normalization" @@ -6672,6 +6818,12 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +[[package]] +name = "unicode-width" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" + [[package]] name = "unicode-xid" version = "0.2.6" @@ -6733,9 +6885,9 @@ dependencies = [ [[package]] name = "url" -version = "2.5.2" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", @@ -6748,6 +6900,18 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.2" @@ -6811,9 +6975,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.95" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" dependencies = [ "cfg-if", "once_cell", @@ -6822,36 +6986,36 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.95" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.45" +version = "0.4.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" +checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.95" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6859,28 +7023,38 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.95" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.95" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" +checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" [[package]] name = "web-sys" -version = "0.3.72" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", @@ -7117,6 +7291,18 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + [[package]] name = "x509-parser" version = "0.14.0" @@ -7155,6 +7341,30 @@ dependencies = [ "time", ] +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", + "synstructure 0.13.1", +] + [[package]] name = "zerocopy" version = "0.7.35" @@ -7173,7 +7383,28 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", +] + +[[package]] +name = "zerofrom" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", + "synstructure 0.13.1", ] [[package]] @@ -7193,7 +7424,29 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.90", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 3ed20ca..7996e7a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -57,6 +57,7 @@ rand = "0.8.5" serde = { version = "^1.0", features = ["derive"] } serde_json = "1.0.102" serde_with = "3.9.0" +serde-big-array = "0.5.1" shank = "0.4.2" shank_idl = "0.4.2" spl-math = { version = "0.3.0", features = ["no-entrypoint"] } diff --git a/clients/js/jito_tip_router/accounts/ballotBox.ts b/clients/js/jito_tip_router/accounts/ballotBox.ts index 5514b64..1ec4ec1 100644 --- a/clients/js/jito_tip_router/accounts/ballotBox.ts +++ b/clients/js/jito_tip_router/accounts/ballotBox.ts @@ -91,8 +91,8 @@ export function getBallotBoxEncoder(): Encoder { ['operatorsVoted', getU64Encoder()], ['uniqueBallots', getU64Encoder()], ['winningBallot', getBallotEncoder()], - ['operatorVotes', getArrayEncoder(getOperatorVoteEncoder(), { size: 16 })], - ['ballotTallies', getArrayEncoder(getBallotTallyEncoder(), { size: 16 })], + ['operatorVotes', getArrayEncoder(getOperatorVoteEncoder(), { size: 256 })], + ['ballotTallies', getArrayEncoder(getBallotTallyEncoder(), { size: 256 })], ]); } @@ -108,8 +108,8 @@ export function getBallotBoxDecoder(): Decoder { ['operatorsVoted', getU64Decoder()], ['uniqueBallots', getU64Decoder()], ['winningBallot', getBallotDecoder()], - ['operatorVotes', getArrayDecoder(getOperatorVoteDecoder(), { size: 16 })], - ['ballotTallies', getArrayDecoder(getBallotTallyDecoder(), { size: 16 })], + ['operatorVotes', getArrayDecoder(getOperatorVoteDecoder(), { size: 256 })], + ['ballotTallies', getArrayDecoder(getBallotTallyDecoder(), { size: 256 })], ]); } diff --git a/clients/js/jito_tip_router/accounts/baseRewardRouter.ts b/clients/js/jito_tip_router/accounts/baseRewardRouter.ts index 30039a3..2342f7e 100644 --- a/clients/js/jito_tip_router/accounts/baseRewardRouter.ts +++ b/clients/js/jito_tip_router/accounts/baseRewardRouter.ts @@ -96,7 +96,7 @@ export function getBaseRewardRouterEncoder(): Encoder { ], [ 'ncnFeeGroupRewardRoutes', - getArrayEncoder(getNcnRewardRouteEncoder(), { size: 32 }), + getArrayEncoder(getNcnRewardRouteEncoder(), { size: 256 }), ], ]); } @@ -122,7 +122,7 @@ export function getBaseRewardRouterDecoder(): Decoder { ], [ 'ncnFeeGroupRewardRoutes', - getArrayDecoder(getNcnRewardRouteDecoder(), { size: 32 }), + getArrayDecoder(getNcnRewardRouteDecoder(), { size: 256 }), ], ]); } diff --git a/clients/js/jito_tip_router/accounts/ncnRewardRouter.ts b/clients/js/jito_tip_router/accounts/ncnRewardRouter.ts index ac679ce..e678ea4 100644 --- a/clients/js/jito_tip_router/accounts/ncnRewardRouter.ts +++ b/clients/js/jito_tip_router/accounts/ncnRewardRouter.ts @@ -93,7 +93,7 @@ export function getNcnRewardRouterEncoder(): Encoder { ['reserved', getArrayEncoder(getU8Encoder(), { size: 128 })], [ 'vaultRewardRoutes', - getArrayEncoder(getVaultRewardRouteEncoder(), { size: 32 }), + getArrayEncoder(getVaultRewardRouteEncoder(), { size: 64 }), ], ]); } @@ -114,7 +114,7 @@ export function getNcnRewardRouterDecoder(): Decoder { ['reserved', getArrayDecoder(getU8Decoder(), { size: 128 })], [ 'vaultRewardRoutes', - getArrayDecoder(getVaultRewardRouteDecoder(), { size: 32 }), + getArrayDecoder(getVaultRewardRouteDecoder(), { size: 64 }), ], ]); } diff --git a/clients/js/jito_tip_router/accounts/operatorSnapshot.ts b/clients/js/jito_tip_router/accounts/operatorSnapshot.ts index 69a2e01..1894d73 100644 --- a/clients/js/jito_tip_router/accounts/operatorSnapshot.ts +++ b/clients/js/jito_tip_router/accounts/operatorSnapshot.ts @@ -109,7 +109,7 @@ export function getOperatorSnapshotEncoder(): Encoder { ['reserved', getArrayEncoder(getU8Encoder(), { size: 256 })], [ 'vaultOperatorStakeWeight', - getArrayEncoder(getVaultOperatorStakeWeightEncoder(), { size: 32 }), + getArrayEncoder(getVaultOperatorStakeWeightEncoder(), { size: 64 }), ], ]); } @@ -134,7 +134,7 @@ export function getOperatorSnapshotDecoder(): Decoder { ['reserved', getArrayDecoder(getU8Decoder(), { size: 256 })], [ 'vaultOperatorStakeWeight', - getArrayDecoder(getVaultOperatorStakeWeightDecoder(), { size: 32 }), + getArrayDecoder(getVaultOperatorStakeWeightDecoder(), { size: 64 }), ], ]); } diff --git a/clients/js/jito_tip_router/accounts/trackedMints.ts b/clients/js/jito_tip_router/accounts/trackedMints.ts index 75d2ad5..ac8920a 100644 --- a/clients/js/jito_tip_router/accounts/trackedMints.ts +++ b/clients/js/jito_tip_router/accounts/trackedMints.ts @@ -62,8 +62,8 @@ export function getTrackedMintsEncoder(): Encoder { ['discriminator', getU64Encoder()], ['ncn', getAddressEncoder()], ['bump', getU8Encoder()], - ['reserved', getArrayEncoder(getU8Encoder(), { size: 7 })], - ['stMintList', getArrayEncoder(getMintEntryEncoder(), { size: 16 })], + ['reserved', getArrayEncoder(getU8Encoder(), { size: 127 })], + ['stMintList', getArrayEncoder(getMintEntryEncoder(), { size: 64 })], ]); } @@ -72,8 +72,8 @@ export function getTrackedMintsDecoder(): Decoder { ['discriminator', getU64Decoder()], ['ncn', getAddressDecoder()], ['bump', getU8Decoder()], - ['reserved', getArrayDecoder(getU8Decoder(), { size: 7 })], - ['stMintList', getArrayDecoder(getMintEntryDecoder(), { size: 16 })], + ['reserved', getArrayDecoder(getU8Decoder(), { size: 127 })], + ['stMintList', getArrayDecoder(getMintEntryDecoder(), { size: 64 })], ]); } diff --git a/clients/rust/jito_tip_router/Cargo.toml b/clients/rust/jito_tip_router/Cargo.toml index 78aef95..d4accf2 100644 --- a/clients/rust/jito_tip_router/Cargo.toml +++ b/clients/rust/jito_tip_router/Cargo.toml @@ -21,6 +21,7 @@ bytemuck = { workspace = true } num-derive = { workspace = true } num-traits = { workspace = true } serde = { workspace = true } +serde-big-array = { workspace = true } serde_with = { workspace = true } solana-program = { workspace = true } solana-sdk = { workspace = true } diff --git a/clients/rust/jito_tip_router/src/generated/accounts/ballot_box.rs b/clients/rust/jito_tip_router/src/generated/accounts/ballot_box.rs index 63eafb2..24d5c5f 100644 --- a/clients/rust/jito_tip_router/src/generated/accounts/ballot_box.rs +++ b/clients/rust/jito_tip_router/src/generated/accounts/ballot_box.rs @@ -22,13 +22,15 @@ pub struct BallotBox { pub bump: u8, pub slot_created: u64, pub slot_consensus_reached: u64, - #[cfg_attr(feature = "serde", serde(with = "serde_with::As::"))] + #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))] pub reserved: [u8; 128], pub operators_voted: u64, pub unique_ballots: u64, pub winning_ballot: Ballot, - pub operator_votes: [OperatorVote; 16], - pub ballot_tallies: [BallotTally; 16], + #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))] + pub operator_votes: [OperatorVote; 256], + #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))] + pub ballot_tallies: [BallotTally; 256], } impl BallotBox { diff --git a/clients/rust/jito_tip_router/src/generated/accounts/base_reward_router.rs b/clients/rust/jito_tip_router/src/generated/accounts/base_reward_router.rs index df94a73..3252eb2 100644 --- a/clients/rust/jito_tip_router/src/generated/accounts/base_reward_router.rs +++ b/clients/rust/jito_tip_router/src/generated/accounts/base_reward_router.rs @@ -24,11 +24,12 @@ pub struct BaseRewardRouter { pub total_rewards: u64, pub reward_pool: u64, pub rewards_processed: u64, - #[cfg_attr(feature = "serde", serde(with = "serde_with::As::"))] + #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))] pub reserved: [u8; 128], pub base_fee_group_rewards: [BaseRewardRouterRewards; 8], pub ncn_fee_group_rewards: [BaseRewardRouterRewards; 8], - pub ncn_fee_group_reward_routes: [NcnRewardRoute; 32], + #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))] + pub ncn_fee_group_reward_routes: [NcnRewardRoute; 256], } impl BaseRewardRouter { diff --git a/clients/rust/jito_tip_router/src/generated/accounts/epoch_snapshot.rs b/clients/rust/jito_tip_router/src/generated/accounts/epoch_snapshot.rs index 9734e69..d6573fe 100644 --- a/clients/rust/jito_tip_router/src/generated/accounts/epoch_snapshot.rs +++ b/clients/rust/jito_tip_router/src/generated/accounts/epoch_snapshot.rs @@ -28,7 +28,7 @@ pub struct EpochSnapshot { pub operators_registered: u64, pub valid_operator_vault_delegations: u64, pub stake_weights: StakeWeights, - #[cfg_attr(feature = "serde", serde(with = "serde_with::As::"))] + #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))] pub reserved: [u8; 128], } diff --git a/clients/rust/jito_tip_router/src/generated/accounts/ncn_config.rs b/clients/rust/jito_tip_router/src/generated/accounts/ncn_config.rs index 6c235c0..a11a271 100644 --- a/clients/rust/jito_tip_router/src/generated/accounts/ncn_config.rs +++ b/clients/rust/jito_tip_router/src/generated/accounts/ncn_config.rs @@ -32,7 +32,7 @@ pub struct NcnConfig { pub epochs_before_stall: u64, pub fee_config: FeeConfig, pub bump: u8, - #[cfg_attr(feature = "serde", serde(with = "serde_with::As::"))] + #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))] pub reserved: [u8; 127], } diff --git a/clients/rust/jito_tip_router/src/generated/accounts/ncn_reward_router.rs b/clients/rust/jito_tip_router/src/generated/accounts/ncn_reward_router.rs index 4e887bc..7d14fa1 100644 --- a/clients/rust/jito_tip_router/src/generated/accounts/ncn_reward_router.rs +++ b/clients/rust/jito_tip_router/src/generated/accounts/ncn_reward_router.rs @@ -31,9 +31,10 @@ pub struct NcnRewardRouter { pub reward_pool: u64, pub rewards_processed: u64, pub operator_rewards: u64, - #[cfg_attr(feature = "serde", serde(with = "serde_with::As::"))] + #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))] pub reserved: [u8; 128], - pub vault_reward_routes: [VaultRewardRoute; 32], + #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))] + pub vault_reward_routes: [VaultRewardRoute; 64], } impl NcnRewardRouter { diff --git a/clients/rust/jito_tip_router/src/generated/accounts/operator_snapshot.rs b/clients/rust/jito_tip_router/src/generated/accounts/operator_snapshot.rs index c47bd07..5ebabc8 100644 --- a/clients/rust/jito_tip_router/src/generated/accounts/operator_snapshot.rs +++ b/clients/rust/jito_tip_router/src/generated/accounts/operator_snapshot.rs @@ -35,9 +35,10 @@ pub struct OperatorSnapshot { pub vault_operator_delegations_registered: u64, pub valid_operator_vault_delegations: u64, pub stake_weights: StakeWeights, - #[cfg_attr(feature = "serde", serde(with = "serde_with::As::"))] + #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))] pub reserved: [u8; 256], - pub vault_operator_stake_weight: [VaultOperatorStakeWeight; 32], + #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))] + pub vault_operator_stake_weight: [VaultOperatorStakeWeight; 64], } impl OperatorSnapshot { diff --git a/clients/rust/jito_tip_router/src/generated/accounts/tracked_mints.rs b/clients/rust/jito_tip_router/src/generated/accounts/tracked_mints.rs index da3fec6..db5acc4 100644 --- a/clients/rust/jito_tip_router/src/generated/accounts/tracked_mints.rs +++ b/clients/rust/jito_tip_router/src/generated/accounts/tracked_mints.rs @@ -19,8 +19,10 @@ pub struct TrackedMints { )] pub ncn: Pubkey, pub bump: u8, - pub reserved: [u8; 7], - pub st_mint_list: [MintEntry; 16], + #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))] + pub reserved: [u8; 127], + #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))] + pub st_mint_list: [MintEntry; 64], } impl TrackedMints { diff --git a/clients/rust/jito_tip_router/src/generated/accounts/weight_table.rs b/clients/rust/jito_tip_router/src/generated/accounts/weight_table.rs index 72be462..9625c30 100644 --- a/clients/rust/jito_tip_router/src/generated/accounts/weight_table.rs +++ b/clients/rust/jito_tip_router/src/generated/accounts/weight_table.rs @@ -21,7 +21,7 @@ pub struct WeightTable { pub ncn_epoch: u64, pub slot_created: u64, pub bump: u8, - #[cfg_attr(feature = "serde", serde(with = "serde_with::As::"))] + #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))] pub reserved: [u8; 128], pub table: [WeightEntry; 32], } diff --git a/clients/rust/jito_tip_router/src/generated/types/ballot.rs b/clients/rust/jito_tip_router/src/generated/types/ballot.rs index 444eefc..bfae04c 100644 --- a/clients/rust/jito_tip_router/src/generated/types/ballot.rs +++ b/clients/rust/jito_tip_router/src/generated/types/ballot.rs @@ -11,6 +11,6 @@ use borsh::{BorshDeserialize, BorshSerialize}; pub struct Ballot { pub merkle_root: [u8; 32], pub is_valid: bool, - #[cfg_attr(feature = "serde", serde(with = "serde_with::As::"))] + #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))] pub reserved: [u8; 63], } diff --git a/clients/rust/jito_tip_router/src/generated/types/fee_config.rs b/clients/rust/jito_tip_router/src/generated/types/fee_config.rs index f5b7cb6..52662a3 100644 --- a/clients/rust/jito_tip_router/src/generated/types/fee_config.rs +++ b/clients/rust/jito_tip_router/src/generated/types/fee_config.rs @@ -14,7 +14,7 @@ use crate::generated::types::Fees; pub struct FeeConfig { pub block_engine_fee_bps: u16, pub base_fee_wallets: [Pubkey; 8], - #[cfg_attr(feature = "serde", serde(with = "serde_with::As::"))] + #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))] pub reserved: [u8; 128], pub fee1: Fees, pub fee2: Fees, diff --git a/clients/rust/jito_tip_router/src/generated/types/fees.rs b/clients/rust/jito_tip_router/src/generated/types/fees.rs index cfcf577..7110021 100644 --- a/clients/rust/jito_tip_router/src/generated/types/fees.rs +++ b/clients/rust/jito_tip_router/src/generated/types/fees.rs @@ -12,7 +12,7 @@ use crate::generated::types::Fee; #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct Fees { pub activation_epoch: u64, - #[cfg_attr(feature = "serde", serde(with = "serde_with::As::"))] + #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))] pub reserved: [u8; 128], pub base_fee_groups_bps: [Fee; 8], pub ncn_fee_groups_bps: [Fee; 8], diff --git a/clients/rust/jito_tip_router/src/generated/types/operator_vote.rs b/clients/rust/jito_tip_router/src/generated/types/operator_vote.rs index 4a0aec5..aaba60a 100644 --- a/clients/rust/jito_tip_router/src/generated/types/operator_vote.rs +++ b/clients/rust/jito_tip_router/src/generated/types/operator_vote.rs @@ -20,6 +20,6 @@ pub struct OperatorVote { pub slot_voted: u64, pub stake_weights: StakeWeights, pub ballot_index: u16, - #[cfg_attr(feature = "serde", serde(with = "serde_with::As::"))] + #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))] pub reserved: [u8; 64], } diff --git a/clients/rust/jito_tip_router/src/generated/types/weight_entry.rs b/clients/rust/jito_tip_router/src/generated/types/weight_entry.rs index fb3123b..c848ce8 100644 --- a/clients/rust/jito_tip_router/src/generated/types/weight_entry.rs +++ b/clients/rust/jito_tip_router/src/generated/types/weight_entry.rs @@ -18,6 +18,6 @@ pub struct WeightEntry { pub weight: u128, pub slot_set: u64, pub slot_updated: u64, - #[cfg_attr(feature = "serde", serde(with = "serde_with::As::"))] + #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))] pub reserved: [u8; 128], } diff --git a/core/Cargo.toml b/core/Cargo.toml index b55f125..95a5e3c 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -19,6 +19,8 @@ jito-restaking-sdk = { workspace = true } jito-vault-core = { workspace = true } jito-vault-sdk = { workspace = true } meta-merkle-tree = { workspace = true } +serde = { workspace = true } +serde_with = { workspace = true } shank = { workspace = true } solana-program = { workspace = true } spl-associated-token-account = { workspace = true } diff --git a/core/src/ballot_box.rs b/core/src/ballot_box.rs index 01969e5..5df3e4c 100644 --- a/core/src/ballot_box.rs +++ b/core/src/ballot_box.rs @@ -11,7 +11,7 @@ use solana_program::{ use spl_math::precise_number::PreciseNumber; use crate::{ - constants::{precise_consensus, DEFAULT_CONSENSUS_REACHED_SLOT}, + constants::{precise_consensus, DEFAULT_CONSENSUS_REACHED_SLOT, MAX_OPERATORS}, discriminators::Discriminators, error::TipRouterError, stake_weight::StakeWeights, @@ -212,9 +212,8 @@ pub struct BallotBox { winning_ballot: Ballot, - //TODO fix 32 -> MAX_OPERATORS - operator_votes: [OperatorVote; 16], - ballot_tallies: [BallotTally; 16], + operator_votes: [OperatorVote; 256], + ballot_tallies: [BallotTally; 256], } impl Discriminator for BallotBox { @@ -232,9 +231,8 @@ impl BallotBox { operators_voted: PodU64::from(0), unique_ballots: PodU64::from(0), winning_ballot: Ballot::default(), - //TODO fix 32 -> MAX_OPERATORS - operator_votes: [OperatorVote::default(); 16], - ballot_tallies: [BallotTally::default(); 16], + operator_votes: [OperatorVote::default(); MAX_OPERATORS], + ballot_tallies: [BallotTally::default(); MAX_OPERATORS], reserved: [0; 128], } } @@ -355,7 +353,7 @@ impl BallotBox { self.winning_ballot.is_valid() } - pub const fn operator_votes(&self) -> &[OperatorVote; 16] { + pub const fn operator_votes(&self) -> &[OperatorVote; MAX_OPERATORS] { &self.operator_votes } @@ -572,6 +570,29 @@ impl BallotBox { mod tests { use super::*; + #[test] + fn test_len() { + use std::mem::size_of; + + let expected_total = size_of::() // ncn + + size_of::() // epoch + + 1 // bump + + size_of::() // slot_created + + size_of::() // slot_consensus_reached + + 128 // reserved + + size_of::() // operators_voted + + size_of::() // unique_ballots + + size_of::() // winning_ballot + + size_of::() * MAX_OPERATORS // operator_votes + + size_of::() * MAX_OPERATORS; // ballot_tallies + + assert_eq!(size_of::(), expected_total); + + let ballot_box = BallotBox::new(Pubkey::default(), 0, 0, 0); + assert_eq!(ballot_box.operator_votes.len(), MAX_OPERATORS); + assert_eq!(ballot_box.ballot_tallies.len(), MAX_OPERATORS); + } + #[test] #[ignore] // TODO? fn test_verify_merkle_root() { diff --git a/core/src/base_reward_router.rs b/core/src/base_reward_router.rs index 442485f..6ab8be5 100644 --- a/core/src/base_reward_router.rs +++ b/core/src/base_reward_router.rs @@ -9,8 +9,8 @@ use solana_program::{ use spl_math::precise_number::PreciseNumber; use crate::{ - ballot_box::BallotBox, base_fee_group::BaseFeeGroup, discriminators::Discriminators, - error::TipRouterError, fees::Fees, ncn_fee_group::NcnFeeGroup, + ballot_box::BallotBox, base_fee_group::BaseFeeGroup, constants::MAX_OPERATORS, + discriminators::Discriminators, error::TipRouterError, fees::Fees, ncn_fee_group::NcnFeeGroup, }; // PDA'd ["epoch_reward_router", NCN, NCN_EPOCH_SLOT] @@ -36,8 +36,7 @@ pub struct BaseRewardRouter { base_fee_group_rewards: [BaseRewardRouterRewards; 8], ncn_fee_group_rewards: [BaseRewardRouterRewards; 8], - //TODO change to 256 - ncn_fee_group_reward_routes: [NcnRewardRoute; 32], + ncn_fee_group_reward_routes: [NcnRewardRoute; 256], } impl Discriminator for BaseRewardRouter { @@ -59,7 +58,7 @@ impl BaseRewardRouter { NcnFeeGroup::FEE_GROUP_COUNT], ncn_fee_group_rewards: [BaseRewardRouterRewards::default(); NcnFeeGroup::FEE_GROUP_COUNT], - ncn_fee_group_reward_routes: [NcnRewardRoute::default(); 32], + ncn_fee_group_reward_routes: [NcnRewardRoute::default(); MAX_OPERATORS], } } @@ -659,6 +658,24 @@ mod tests { use solana_program::pubkey::Pubkey; use super::*; + #[test] + fn test_len() { + use std::mem::size_of; + + let expected_total = size_of::() // ncn + + size_of::() // ncn_epoch + + 1 // bump + + size_of::() // slot_created + + size_of::() // total_rewards + + size_of::() // reward_pool + + size_of::() // rewards_processed + + 128 // reserved + + size_of::() * NcnFeeGroup::FEE_GROUP_COUNT // base_fee_group_rewards + + size_of::() * NcnFeeGroup::FEE_GROUP_COUNT // ncn_fee_group_rewards + + size_of::() * MAX_OPERATORS; // ncn_fee_group_reward_routes + + assert_eq!(size_of::(), expected_total); + } #[test] fn test_route_incoming_rewards() { diff --git a/core/src/constants.rs b/core/src/constants.rs index 109a91b..d25c003 100644 --- a/core/src/constants.rs +++ b/core/src/constants.rs @@ -4,6 +4,7 @@ use crate::error::TipRouterError; pub const MAX_FEE_BPS: u64 = 10_000; pub const MAX_VAULT_OPERATOR_DELEGATIONS: usize = 64; +pub const MAX_OPERATORS: usize = 256; const PRECISE_CONSENSUS_NUMERATOR: u128 = 2; const PRECISE_CONSENSUS_DENOMINATOR: u128 = 3; pub fn precise_consensus() -> Result { diff --git a/core/src/epoch_snapshot.rs b/core/src/epoch_snapshot.rs index 7ffa6c0..2978cf4 100644 --- a/core/src/epoch_snapshot.rs +++ b/core/src/epoch_snapshot.rs @@ -9,8 +9,9 @@ use solana_program::{account_info::AccountInfo, msg, program_error::ProgramError use spl_math::precise_number::PreciseNumber; use crate::{ - discriminators::Discriminators, error::TipRouterError, fees::Fees, ncn_fee_group::NcnFeeGroup, - stake_weight::StakeWeights, weight_table::WeightTable, + constants::MAX_VAULT_OPERATOR_DELEGATIONS, discriminators::Discriminators, + error::TipRouterError, fees::Fees, ncn_fee_group::NcnFeeGroup, stake_weight::StakeWeights, + weight_table::WeightTable, }; // PDA'd ["epoch_snapshot", NCN, NCN_EPOCH_SLOT] @@ -213,8 +214,7 @@ pub struct OperatorSnapshot { stake_weights: StakeWeights, reserved: [u8; 256], - //TODO change to 64 - vault_operator_stake_weight: [VaultOperatorStakeWeight; 32], + vault_operator_stake_weight: [VaultOperatorStakeWeight; 64], } impl Discriminator for OperatorSnapshot { @@ -257,7 +257,8 @@ impl OperatorSnapshot { valid_operator_vault_delegations: PodU64::from(0), stake_weights: StakeWeights::default(), reserved: [0; 256], - vault_operator_stake_weight: [VaultOperatorStakeWeight::default(); 32], + vault_operator_stake_weight: [VaultOperatorStakeWeight::default(); + MAX_VAULT_OPERATOR_DELEGATIONS], }) } @@ -550,3 +551,34 @@ impl VaultOperatorStakeWeight { self.ncn_fee_group } } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_operator_snapshot_size() { + use std::mem::size_of; + + let expected_total = size_of::() // operator + + size_of::() // ncn + + size_of::() // ncn_epoch + + 1 // bump + + size_of::() // slot_created + + size_of::() // slot_finalized + + size_of::() // is_active + + size_of::() // ncn_operator_index + + size_of::() // operator_index + + size_of::() // operator_fee_bps + + size_of::() // vault_operator_delegation_count + + size_of::() // vault_operator_delegations_registered + + size_of::() // valid_operator_vault_delegations + + size_of::() // stake_weight + + 256 // reserved + + size_of::() * MAX_VAULT_OPERATOR_DELEGATIONS; // vault_operator_stake_weight + + assert_eq!(size_of::(), expected_total); + println!("expected_total: {}", expected_total); + assert!(false); + } +} diff --git a/core/src/ncn_reward_router.rs b/core/src/ncn_reward_router.rs index 3a26edc..a2b8388 100644 --- a/core/src/ncn_reward_router.rs +++ b/core/src/ncn_reward_router.rs @@ -10,8 +10,8 @@ use solana_program::{ use spl_math::precise_number::PreciseNumber; use crate::{ - discriminators::Discriminators, epoch_snapshot::OperatorSnapshot, error::TipRouterError, - ncn_fee_group::NcnFeeGroup, + constants::MAX_VAULT_OPERATOR_DELEGATIONS, discriminators::Discriminators, + epoch_snapshot::OperatorSnapshot, error::TipRouterError, ncn_fee_group::NcnFeeGroup, }; // PDA'd ["epoch_reward_router", NCN, NCN_EPOCH_SLOT] @@ -40,8 +40,7 @@ pub struct NcnRewardRouter { reserved: [u8; 128], - //TODO change to 64 - vault_reward_routes: [VaultRewardRoute; 32], + vault_reward_routes: [VaultRewardRoute; 64], } impl Discriminator for NcnRewardRouter { @@ -69,7 +68,7 @@ impl NcnRewardRouter { rewards_processed: PodU64::from(0), operator_rewards: PodU64::from(0), reserved: [0; 128], - vault_reward_routes: [VaultRewardRoute::default(); 32], + vault_reward_routes: [VaultRewardRoute::default(); MAX_VAULT_OPERATOR_DELEGATIONS], } } @@ -552,6 +551,26 @@ mod tests { use super::*; + #[test] + fn test_len() { + use std::mem::size_of; + + let expected_total = size_of::() // ncn_fee_group + + size_of::() // operator + + size_of::() // ncn + + size_of::() // ncn_epoch + + 1 // bump + + size_of::() // slot_created + + size_of::() // total_rewards + + size_of::() // reward_pool + + size_of::() // rewards_processed + + size_of::() // operator_rewards + + 128 // reserved + + size_of::() * MAX_VAULT_OPERATOR_DELEGATIONS; // vault_reward_routes + + assert_eq!(size_of::(), expected_total); + } + #[test] fn test_route_incoming_rewards() { let mut router = NcnRewardRouter::new( diff --git a/core/src/tracked_mints.rs b/core/src/tracked_mints.rs index 783548a..82cc25a 100644 --- a/core/src/tracked_mints.rs +++ b/core/src/tracked_mints.rs @@ -5,7 +5,10 @@ use jito_bytemuck::{types::PodU64, AccountDeserialize, Discriminator}; use shank::{ShankAccount, ShankType}; use solana_program::{account_info::AccountInfo, msg, program_error::ProgramError, pubkey::Pubkey}; -use crate::{discriminators::Discriminators, error::TipRouterError, ncn_fee_group::NcnFeeGroup}; +use crate::{ + constants::MAX_VAULT_OPERATOR_DELEGATIONS, discriminators::Discriminators, + error::TipRouterError, ncn_fee_group::NcnFeeGroup, +}; #[derive(Debug, Clone, Copy, Zeroable, ShankType, Pod)] #[repr(C)] @@ -54,8 +57,8 @@ impl Default for MintEntry { pub struct TrackedMints { pub ncn: Pubkey, pub bump: u8, - pub reserved: [u8; 7], // TODO extend to 127; figure out serde issue - pub st_mint_list: [MintEntry; 16], // TODO extend to 64; figure out serde issue + pub reserved: [u8; 127], + pub st_mint_list: [MintEntry; 64], } impl Discriminator for TrackedMints { @@ -67,8 +70,8 @@ impl TrackedMints { Self { ncn, bump, - reserved: [0; 7], - st_mint_list: [MintEntry::default(); 16], + reserved: [0; 127], + st_mint_list: [MintEntry::default(); MAX_VAULT_OPERATOR_DELEGATIONS], } } @@ -212,6 +215,24 @@ impl TrackedMints { mod tests { use super::*; + #[test] + fn test_len() { + use std::mem::size_of; + + let expected_total = size_of::() // ncn + + 1 // bump + + 127 // reserved + + size_of::() * MAX_VAULT_OPERATOR_DELEGATIONS; // st_mint_list + + assert_eq!(size_of::(), expected_total); + + let tracked_mints = TrackedMints::new(Pubkey::default(), 0); + assert_eq!( + tracked_mints.st_mint_list.len(), + MAX_VAULT_OPERATOR_DELEGATIONS + ); + } + #[test] fn test_add_mint() { let mut tracked_mints = TrackedMints::new(Pubkey::default(), 0); diff --git a/idl/jito_tip_router.json b/idl/jito_tip_router.json index 9746d4e..78bce84 100644 --- a/idl/jito_tip_router.json +++ b/idl/jito_tip_router.json @@ -1348,7 +1348,7 @@ { "defined": "OperatorVote" }, - 16 + 256 ] } }, @@ -1359,7 +1359,7 @@ { "defined": "BallotTally" }, - 16 + 256 ] } } @@ -1447,7 +1447,7 @@ { "defined": "NcnRewardRoute" }, - 32 + 256 ] } } @@ -1632,7 +1632,7 @@ { "defined": "VaultOperatorStakeWeight" }, - 32 + 64 ] } } @@ -1765,7 +1765,7 @@ { "defined": "VaultRewardRoute" }, - 32 + 64 ] } } @@ -1790,7 +1790,7 @@ "type": { "array": [ "u8", - 7 + 127 ] } }, @@ -1801,7 +1801,7 @@ { "defined": "MintEntry" }, - 16 + 64 ] } } diff --git a/package.json b/package.json index 57bf177..5ac2eaa 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,6 @@ "yarn": "2.4.3" }, "scripts": { - "generate-clients": "node scripts/generate-clients.js" + "generate-clients": "node scripts/generate-clients.js && node scripts/update-attributes.js" } } \ No newline at end of file diff --git a/scripts/update-attributes.js b/scripts/update-attributes.js new file mode 100644 index 0000000..37ef7ac --- /dev/null +++ b/scripts/update-attributes.js @@ -0,0 +1,60 @@ +const fs = require('fs'); +const path = require('path'); + +// Function to recursively find all .rs files +function findRustFiles(dir, fileList = []) { + const files = fs.readdirSync(dir); + + files.forEach(file => { + const filePath = path.join(dir, file); + const stat = fs.statSync(filePath); + + if (stat.isDirectory()) { + findRustFiles(filePath, fileList); + } else if (path.extname(file) === '.rs') { + fileList.push(filePath); + } + }); + + return fileList; +} + +// Function to replace text in a file +function replaceInFile(filePath, searchText, replaceText) { + try { + const content = fs.readFileSync(filePath, 'utf8'); + const updatedContent = content.replace(new RegExp(searchText, 'g'), replaceText); + + // Only write if content changed + if (content !== updatedContent) { + fs.writeFileSync(filePath, updatedContent, 'utf8'); + console.log(`Updated ${filePath}`); + } + } catch (err) { + console.error(`Error processing ${filePath}:`, err); + } +} + +// Main execution +try { + const rustDir = path.join(__dirname, '../clients/rust'); + const rustFiles = findRustFiles(rustDir); + + if (rustFiles.length === 0) { + console.log('No .rs files found in', rustDir); + process.exit(1); + } + + // Replace text in each file + const searchText = 'serde\\(with = "serde_with::As::"\\)'; + const replaceText = 'serde(with = "serde_big_array::BigArray")'; + + rustFiles.forEach(file => { + replaceInFile(file, searchText, replaceText); + }); + + console.log('Finished processing', rustFiles.length, 'files'); +} catch (err) { + console.error('Script failed:', err); + process.exit(1); +}