diff --git a/Cargo.lock b/Cargo.lock index 8f13c2e..67859ca 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -119,9 +119,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.18" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-primitives" @@ -133,7 +133,7 @@ dependencies = [ "bytes", "cfg-if", "const-hex", - "derive_more 0.99.18", + "derive_more", "hex-literal", "itoa", "k256", @@ -147,9 +147,9 @@ dependencies = [ [[package]] name = "alloy-rlp" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0822426598f95e45dd1ea32a738dac057529a709ee645fcc516ffa4cbde08f" +checksum = "f542548a609dca89fcd72b3b9f355928cf844d4363c5eed9c5273a3dd225e097" dependencies = [ "arrayvec", "bytes", @@ -164,9 +164,9 @@ dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -178,11 +178,11 @@ dependencies = [ "alloy-sol-macro-input", "const-hex", "heck", - "indexmap 2.6.0", + "indexmap 2.7.0", "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", "syn-solidity", "tiny-keccak", ] @@ -196,9 +196,9 @@ dependencies = [ "const-hex", "dunce", "heck", - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", "syn-solidity", ] @@ -223,12 +223,12 @@ dependencies = [ "bnum 0.12.0", "chrono", "redact", - "reqwest 0.12.8", + "reqwest 0.12.9", "serde", "simd-json", - "thiserror", + "thiserror 1.0.69", "tracing", - "typed-builder", + "typed-builder 0.18.2", "url", "uuid", ] @@ -259,9 +259,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.15" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -274,43 +274,43 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.4" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[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 = "ark-bn254" @@ -384,7 +384,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" dependencies = [ - "quote", + "quote 1.0.37", "syn 1.0.109", ] @@ -394,7 +394,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" dependencies = [ - "quote", + "quote 1.0.37", "syn 1.0.109", ] @@ -406,7 +406,7 @@ checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" dependencies = [ "num-bigint 0.4.6", "num-traits", - "quote", + "quote 1.0.37", "syn 1.0.109", ] @@ -418,8 +418,8 @@ checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" dependencies = [ "num-bigint 0.4.6", "num-traits", - "proc-macro2", - "quote", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -464,8 +464,8 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -519,7 +519,7 @@ dependencies = [ "nom", "num-traits", "rusticata-macros", - "thiserror", + "thiserror 1.0.69", "time", ] @@ -529,10 +529,10 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", - "synstructure", + "synstructure 0.12.6", ] [[package]] @@ -541,8 +541,8 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -565,9 +565,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", @@ -603,9 +603,9 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -614,9 +614,9 @@ version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -642,9 +642,9 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -656,11 +656,27 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axelar-executable" version = "0.1.0" -source = "git+https://github.com/eigerco/solana-axelar.git?branch=main#09c8619fb9dc3ea61cf855150886266f01f208a7" +source = "git+https://github.com/eigerco/solana-axelar.git?rev=91c8cf2#91c8cf2aa0702d6bbaff21164d79f8640815fb53" +dependencies = [ + "alloy-sol-types", + "axelar-solana-encoding", + "axelar-solana-gateway", + "borsh 1.5.3", + "num-derive", + "num-traits", + "rkyv", + "solana-program", + "thiserror 1.0.69", +] + +[[package]] +name = "axelar-executable-old" +version = "0.1.0" +source = "git+https://github.com/eigerco/solana-axelar.git?rev=91c8cf2#91c8cf2aa0702d6bbaff21164d79f8640815fb53" dependencies = [ "axelar-message-primitives", "axelar-rkyv-encoding", - "borsh 1.5.1", + "borsh 1.5.3", "gmp-gateway", "solana-program", ] @@ -668,49 +684,132 @@ dependencies = [ [[package]] name = "axelar-message-primitives" version = "0.1.0" -source = "git+https://github.com/eigerco/solana-axelar.git?branch=main#09c8619fb9dc3ea61cf855150886266f01f208a7" +source = "git+https://github.com/eigerco/solana-axelar.git?rev=91c8cf2#91c8cf2aa0702d6bbaff21164d79f8640815fb53" dependencies = [ + "alloy-primitives", "alloy-sol-types", - "anyhow", "bnum 0.10.0", - "borsh 1.5.1", + "borsh 1.5.3", "bytemuck", - "ethers-core", "hex", - "libsecp256k1", "rkyv", - "sha3 0.10.8", "solana-program", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "axelar-rkyv-encoding" version = "0.1.0" -source = "git+https://github.com/eigerco/solana-axelar.git?branch=main#09c8619fb9dc3ea61cf855150886266f01f208a7" +source = "git+https://github.com/eigerco/solana-axelar.git?rev=91c8cf2#91c8cf2aa0702d6bbaff21164d79f8640815fb53" dependencies = [ + "arrayref", + "bitflags 2.6.0", "bnum 0.10.0", "bs58", + "bytemuck", "ed25519-dalek 2.1.1", "hex", "libsecp256k1", "rkyv", + "rs_merkle", + "sha3 0.10.8", + "solana-program", + "thiserror 1.0.69", +] + +[[package]] +name = "axelar-solana-encoding" +version = "0.1.0" +source = "git+https://github.com/eigerco/solana-axelar.git?rev=91c8cf2#91c8cf2aa0702d6bbaff21164d79f8640815fb53" +dependencies = [ + "arrayref", + "borsh 1.5.3", + "bs58", + "hex", + "rkyv", + "rs_merkle", "sha3 0.10.8", "solana-program", - "thiserror", + "thiserror 1.0.69", + "udigest", +] + +[[package]] +name = "axelar-solana-gateway" +version = "0.1.0" +source = "git+https://github.com/eigerco/solana-axelar.git?rev=91c8cf2#91c8cf2aa0702d6bbaff21164d79f8640815fb53" +dependencies = [ + "axelar-message-primitives", + "axelar-solana-encoding", + "bincode", + "bitvec", + "borsh 1.5.3", + "bytemuck", + "ed25519-dalek 2.1.1", + "hex", + "itertools 0.12.1", + "libsecp256k1", + "num-derive", + "num-traits", + "program-utils", + "solana-program", + "thiserror 1.0.69", +] + +[[package]] +name = "axelar-solana-governance" +version = "0.1.0" +source = "git+https://github.com/eigerco/solana-axelar.git?rev=91c8cf2#91c8cf2aa0702d6bbaff21164d79f8640815fb53" +dependencies = [ + "alloy-sol-types", + "axelar-executable-old", + "axelar-rkyv-encoding", + "base64 0.21.7", + "gmp-gateway", + "governance-gmp", + "program-utils", + "rkyv", + "solana-program", +] + +[[package]] +name = "axelar-solana-its" +version = "0.1.0" +source = "git+https://github.com/eigerco/solana-axelar.git?rev=91c8cf2#91c8cf2aa0702d6bbaff21164d79f8640815fb53" +dependencies = [ + "alloy-primitives", + "alloy-sol-types", + "axelar-executable", + "axelar-message-primitives", + "axelar-rkyv-encoding", + "axelar-solana-encoding", + "axelar-solana-gateway", + "bitflags 2.6.0", + "borsh 1.5.3", + "interchain-token-transfer-gmp", + "program-utils", + "rkyv", + "role-management", + "solana-program", + "spl-associated-token-account 5.0.1", + "spl-pod 0.4.0", + "spl-token", + "spl-token-2022 5.0.2", + "spl-token-metadata-interface 0.5.1", + "typed-builder 0.20.0", ] [[package]] name = "axum" -version = "0.7.7" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504e3947307ac8326a5437504c517c4b56716c9d98fac0028c2acc7ca47d70ae" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" dependencies = [ "async-trait", "axum-core", "bytes", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", "http-body-util", "itoa", @@ -721,7 +820,7 @@ dependencies = [ "pin-project-lite", "rustversion", "serde", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tower 0.5.1", "tower-layer", "tower-service", @@ -736,13 +835,13 @@ dependencies = [ "async-trait", "bytes", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", "http-body-util", "mime", "pin-project-lite", "rustversion", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tower-layer", "tower-service", ] @@ -865,9 +964,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", @@ -930,11 +1029,11 @@ dependencies = [ [[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 0.2.1", ] @@ -947,22 +1046,21 @@ dependencies = [ "borsh-derive-internal", "borsh-schema-derive-internal", "proc-macro-crate 0.1.5", - "proc-macro2", + "proc-macro2 1.0.92", "syn 1.0.109", ] [[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", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -971,8 +1069,8 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "65d6ba50644c98714aa2a70d13d7df3cd75cd2b523a2b452bf010443800976b3" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -982,8 +1080,8 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "276691d96f063427be83e6692b86148e488ebba9f48f77788724ca027ba3b6d4" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -1056,16 +1154,16 @@ version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] [[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", ] @@ -1076,9 +1174,9 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -1089,12 +1187,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" -dependencies = [ - "serde", -] +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" [[package]] name = "caps" @@ -1103,14 +1198,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "190baaad529bcfbde9e1a19022c42781bdb6ff9de25721abdb8fd98c0807730b" dependencies = [ "libc", - "thiserror", + "thiserror 1.0.69", ] [[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", @@ -1137,9 +1232,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", @@ -1171,7 +1266,7 @@ dependencies = [ "bitflags 1.3.2", "strsim 0.8.0", "textwrap 0.11.0", - "unicode-width", + "unicode-width 0.1.14", "vec_map", ] @@ -1193,9 +1288,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", @@ -1203,13 +1298,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", ] @@ -1220,9 +1315,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ "heck", - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -1236,9 +1331,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 = "color-eyre" @@ -1269,9 +1364,9 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "combine" @@ -1321,7 +1416,7 @@ dependencies = [ "encode_unicode", "lazy_static", "libc", - "unicode-width", + "unicode-width 0.1.14", "windows-sys 0.52.0", ] @@ -1347,9 +1442,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.13.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0121754e84117e65f9d90648ee6aa4882a6e63110307ab73967a4c5e7e69e586" +checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" dependencies = [ "cfg-if", "cpufeatures", @@ -1404,9 +1499,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", ] @@ -1537,9 +1632,9 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -1560,10 +1655,10 @@ checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ "fnv", "ident_case", - "proc-macro2", - "quote", + "proc-macro2 1.0.92", + "quote 1.0.37", "strsim 0.11.1", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -1573,8 +1668,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", - "quote", - "syn 2.0.85", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -1627,6 +1722,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", + "serde", ] [[package]] @@ -1641,8 +1737,8 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -1653,30 +1749,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ "convert_case", - "proc-macro2", - "quote", + "proc-macro2 1.0.92", + "quote 1.0.37", "rustc_version 0.4.1", - "syn 2.0.85", -] - -[[package]] -name = "derive_more" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" -dependencies = [ - "derive_more-impl", -] - -[[package]] -name = "derive_more-impl" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -1730,9 +1806,9 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -1753,9 +1829,9 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6cbae11b3de8fce2a456e8ea3dada226b35fe791f0dc1d360c0941f0bb681f3" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -1855,10 +1931,10 @@ version = "0.1.0" dependencies = [ "eyre", "futures", - "itertools 0.12.1", + "itertools 0.13.0", "solana-client", "solana-sdk", - "thiserror", + "thiserror 1.0.69", "tracing", ] @@ -1917,9 +1993,9 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1ab991c1362ac86c61ab6f556cff143daa22e5a15e4e189df818b2fd19fe65b" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -1943,87 +2019,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", -] - -[[package]] -name = "ethabi" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" -dependencies = [ - "ethereum-types", - "hex", - "once_cell", - "regex", - "serde", - "serde_json", - "sha3 0.10.8", - "thiserror", - "uint", -] - -[[package]] -name = "ethbloom" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" -dependencies = [ - "crunchy", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "tiny-keccak", -] - -[[package]] -name = "ethereum-types" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" -dependencies = [ - "ethbloom", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "primitive-types", - "scale-info", - "uint", -] - -[[package]] -name = "ethers-core" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" -dependencies = [ - "arrayvec", - "bytes", - "chrono", - "const-hex", - "elliptic-curve", - "ethabi", - "generic-array", - "k256", - "num_enum", - "open-fastrlp", - "rand 0.8.5", - "rlp", - "serde", - "serde_json", - "strum", - "tempfile", - "thiserror", - "tiny-keccak", - "unicode-xid", + "windows-sys 0.59.0", ] [[package]] @@ -2053,9 +2054,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 = "fastrlp" @@ -2121,9 +2122,9 @@ checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[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 0.8.0", @@ -2261,9 +2262,9 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -2296,6 +2297,17 @@ dependencies = [ "slab", ] +[[package]] +name = "gateway-event-stack" +version = "0.1.0" +source = "git+https://github.com/eigerco/solana-axelar.git?rev=91c8cf2#91c8cf2aa0702d6bbaff21164d79f8640815fb53" +dependencies = [ + "axelar-solana-gateway", + "base64 0.21.7", + "solana-sdk", + "tracing", +] + [[package]] name = "generator" version = "0.7.5" @@ -2372,7 +2384,7 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "gmp-gateway" version = "0.1.0" -source = "git+https://github.com/eigerco/solana-axelar.git?branch=main#09c8619fb9dc3ea61cf855150886266f01f208a7" +source = "git+https://github.com/eigerco/solana-axelar.git?rev=91c8cf2#91c8cf2aa0702d6bbaff21164d79f8640815fb53" dependencies = [ "arrayref", "axelar-message-primitives", @@ -2381,7 +2393,7 @@ dependencies = [ "bincode", "bitflags 2.6.0", "bitvec", - "borsh 1.5.1", + "borsh 1.5.3", "hex", "itertools 0.12.1", "libsecp256k1", @@ -2389,9 +2401,8 @@ dependencies = [ "num-traits", "program-utils", "rkyv", - "rs_merkle", "solana-program", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2405,6 +2416,16 @@ dependencies = [ "scroll", ] +[[package]] +name = "governance-gmp" +version = "0.1.0" +source = "git+https://github.com/eigerco/solana-axelar.git?rev=91c8cf2#91c8cf2aa0702d6bbaff21164d79f8640815fb53" +dependencies = [ + "alloy-primitives", + "alloy-sol-types", + "hex", +] + [[package]] name = "group" version = "0.13.0" @@ -2428,7 +2449,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.6.0", + "indexmap 2.7.0", "slab", "tokio", "tokio-util", @@ -2437,17 +2458,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "http 1.1.0", - "indexmap 2.6.0", + "http 1.2.0", + "indexmap 2.7.0", "slab", "tokio", "tokio-util", @@ -2503,9 +2524,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.0" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" [[package]] name = "heck" @@ -2589,9 +2610,9 @@ dependencies = [ [[package]] name = "http" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" dependencies = [ "bytes", "fnv", @@ -2616,7 +2637,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.1.0", + "http 1.2.0", ] [[package]] @@ -2627,7 +2648,7 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", "pin-project-lite", ] @@ -2676,15 +2697,15 @@ dependencies = [ [[package]] name = "hyper" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" +checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.6", - "http 1.1.0", + "h2 0.4.7", + "http 1.2.0", "http-body 1.0.1", "httparse", "httpdate", @@ -2716,24 +2737,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", - "http 1.1.0", - "hyper 1.5.0", + "http 1.2.0", + "hyper 1.5.1", "hyper-util", - "rustls 0.23.15", + "rustls 0.23.19", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls 0.26.1", "tower-service", - "webpki-roots 0.26.6", + "webpki-roots 0.26.7", ] [[package]] name = "hyper-timeout" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ - "hyper 1.5.0", + "hyper 1.5.1", "hyper-util", "pin-project-lite", "tokio", @@ -2742,16 +2763,16 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", + "http 1.2.0", "http-body 1.0.1", - "hyper 1.5.0", + "hyper 1.5.1", "pin-project-lite", "socket2", "tokio", @@ -2783,96 +2804,209 @@ dependencies = [ ] [[package]] -name = "ident_case" -version = "1.0.1" +name = "icu_collections" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] [[package]] -name = "idna" -version = "0.5.0" +name = "icu_locid" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", ] [[package]] -name = "impl-codec" -version = "0.6.0" +name = "icu_locid_transform" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" dependencies = [ - "parity-scale-codec", + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", ] [[package]] -name = "impl-rlp" -version = "0.3.0" +name = "icu_locid_transform_data" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" -dependencies = [ - "rlp", -] +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" [[package]] -name = "impl-serde" -version = "0.4.0" +name = "icu_normalizer" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" dependencies = [ - "serde", + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", ] [[package]] -name = "impl-trait-for-tuples" -version = "0.2.2" +name = "icu_normalizer_data" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", ] [[package]] -name = "indenter" -version = "0.3.3" +name = "icu_properties_data" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" [[package]] -name = "indexmap" -version = "1.9.3" +name = "icu_provider" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" dependencies = [ - "autocfg", - "hashbrown 0.12.3", + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", ] [[package]] -name = "indexmap" -version = "2.6.0" +name = "icu_provider_macros" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ - "equivalent", - "hashbrown 0.15.0", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] -name = "indicatif" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "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]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" +dependencies = [ + "equivalent", + "hashbrown 0.15.2", + "serde", +] + +[[package]] +name = "indicatif" +version = "0.17.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf675b85ed934d3c67b5c5469701eec7db22689d0a2139d856e0925fa28b281" dependencies = [ "console", - "instant", "number_prefix", "portable-atomic", - "unicode-width", + "unicode-width 0.2.0", + "web-time", ] [[package]] @@ -2899,6 +3033,16 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "interchain-token-transfer-gmp" +version = "0.1.0" +source = "git+https://github.com/eigerco/solana-axelar.git?rev=91c8cf2#91c8cf2aa0702d6bbaff21164d79f8640815fb53" +dependencies = [ + "alloy-primitives", + "alloy-sol-types", + "hex", +] + [[package]] name = "ipnet" version = "2.10.1" @@ -2940,9 +3084,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 = "jobserver" @@ -2955,10 +3099,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", ] @@ -3017,9 +3162,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "lexical-core" -version = "1.0.2" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0431c65b318a590c1de6b8fd6e72798c92291d27762d94c9e6c37ed7a73d8458" +checksum = "b765c31809609075565a70b4b71402281283aeda7ecaf4818ac14a7b2ade8958" dependencies = [ "lexical-parse-float", "lexical-parse-integer", @@ -3030,9 +3175,9 @@ dependencies = [ [[package]] name = "lexical-parse-float" -version = "1.0.2" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb17a4bdb9b418051aa59d41d65b1c9be5affab314a872e5ad7f06231fb3b4e0" +checksum = "de6f9cb01fb0b08060209a057c048fcbab8717b4c1ecd2eac66ebfe39a65b0f2" dependencies = [ "lexical-parse-integer", "lexical-util", @@ -3041,9 +3186,9 @@ dependencies = [ [[package]] name = "lexical-parse-integer" -version = "1.0.2" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5df98f4a4ab53bf8b175b363a34c7af608fe31f93cc1fb1bf07130622ca4ef61" +checksum = "72207aae22fc0a121ba7b6d479e42cbfea549af1479c3f3a4f12c70dd66df12e" dependencies = [ "lexical-util", "static_assertions", @@ -3051,18 +3196,18 @@ dependencies = [ [[package]] name = "lexical-util" -version = "1.0.3" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85314db53332e5c192b6bca611fb10c114a80d1b831ddac0af1e9be1b9232ca0" +checksum = "5a82e24bf537fd24c177ffbbdc6ebcc8d54732c35b50a3f28cc3f4e4c949a0b3" dependencies = [ "static_assertions", ] [[package]] name = "lexical-write-float" -version = "1.0.2" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e7c3ad4e37db81c1cbe7cf34610340adc09c322871972f74877a712abc6c809" +checksum = "c5afc668a27f460fb45a81a757b6bf2f43c2d7e30cb5a2dcd3abf294c78d62bd" dependencies = [ "lexical-util", "lexical-write-integer", @@ -3071,9 +3216,9 @@ dependencies = [ [[package]] name = "lexical-write-integer" -version = "1.0.2" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb89e9f6958b83258afa3deed90b5de9ef68eef090ad5086c791cd2345610162" +checksum = "629ddff1a914a836fb245616a7888b62903aae58fa771e1d83943035efa0f978" dependencies = [ "lexical-util", "static_assertions", @@ -3081,15 +3226,15 @@ dependencies = [ [[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 = "libm" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libsecp256k1" @@ -3145,6 +3290,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" @@ -3287,9 +3438,9 @@ dependencies = [ [[package]] name = "mockall" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c28b3fb6d753d28c20e826cd46ee611fda1cf3cde03a443a974043247c065a" +checksum = "39a6bfcc6c8c7eed5ee98b9c3e33adc726054389233e201c95dab2d41a3839d2" dependencies = [ "cfg-if", "downcast", @@ -3301,14 +3452,14 @@ dependencies = [ [[package]] name = "mockall_derive" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "341014e7f530314e9a1fdbc7400b244efea7122662c96bfa248c31da5bfb2020" +checksum = "25ca3004c2efe9011bd4e461bd8256445052b9615405b4f7ea43fc8ca5c20898" dependencies = [ "cfg-if", - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -3401,9 +3552,9 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -3474,9 +3625,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ "proc-macro-crate 3.2.0", - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -3515,31 +3666,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" -[[package]] -name = "open-fastrlp" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", - "ethereum-types", - "open-fastrlp-derive", -] - -[[package]] -name = "open-fastrlp-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" -dependencies = [ - "bytes", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "openssl-probe" version = "0.1.5" @@ -3557,7 +3683,7 @@ dependencies = [ "js-sys", "once_cell", "pin-project-lite", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -3580,12 +3706,12 @@ checksum = "596b1719b3cab83addb20bcbffdf21575279d9436d9ccccfe651a3bf0ab5ab06" dependencies = [ "async-trait", "futures-core", - "http 1.1.0", + "http 1.2.0", "opentelemetry", "opentelemetry-proto", "opentelemetry_sdk", "prost", - "thiserror", + "thiserror 1.0.69", "tokio", "tonic", ] @@ -3624,7 +3750,7 @@ dependencies = [ "percent-encoding", "rand 0.8.5", "serde_json", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-stream", ] @@ -3668,8 +3794,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ "proc-macro-crate 3.2.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -3752,12 +3878,12 @@ dependencies = [ [[package]] name = "pest" -version = "2.7.14" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" +checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", - "thiserror", + "thiserror 2.0.6", "ucd-trie", ] @@ -3776,9 +3902,9 @@ version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -3829,9 +3955,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" @@ -3892,9 +4018,6 @@ checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ "fixed-hash", "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", "uint", ] @@ -3923,8 +4046,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2", - "quote", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", "version_check", ] @@ -3935,16 +4058,25 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.92", + "quote 1.0.37", "version_check", ] [[package]] name = "proc-macro2" -version = "1.0.89" +version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +dependencies = [ + "unicode-xid 0.1.0", +] + +[[package]] +name = "proc-macro2" +version = "1.0.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -3952,12 +4084,11 @@ dependencies = [ [[package]] name = "program-utils" version = "0.1.0" -source = "git+https://github.com/eigerco/solana-axelar.git?branch=main#09c8619fb9dc3ea61cf855150886266f01f208a7" +source = "git+https://github.com/eigerco/solana-axelar.git?rev=91c8cf2#91c8cf2aa0702d6bbaff21164d79f8640815fb53" dependencies = [ - "borsh 1.5.1", + "borsh 1.5.3", "rkyv", "solana-program", - "thiserror", ] [[package]] @@ -3982,9 +4113,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" +checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" dependencies = [ "bytes", "prost-derive", @@ -3992,15 +4123,15 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" +checksum = "157c5a9d7ea5c2ed2d9fb8f495b64759f7816c7eaea54ba3978f0d63000162e3" dependencies = [ "anyhow", "itertools 0.13.0", - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -4018,8 +4149,8 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -4065,25 +4196,25 @@ dependencies = [ "quinn-udp 0.4.1", "rustc-hash 1.1.0", "rustls 0.21.12", - "thiserror", + "thiserror 1.0.69", "tokio", "tracing", ] [[package]] name = "quinn" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" dependencies = [ "bytes", "pin-project-lite", - "quinn-proto 0.11.8", - "quinn-udp 0.5.5", - "rustc-hash 2.0.0", - "rustls 0.23.15", + "quinn-proto 0.11.9", + "quinn-udp 0.5.8", + "rustc-hash 2.1.0", + "rustls 0.23.19", "socket2", - "thiserror", + "thiserror 2.0.6", "tokio", "tracing", ] @@ -4101,26 +4232,29 @@ dependencies = [ "rustls 0.21.12", "rustls-native-certs", "slab", - "thiserror", + "thiserror 1.0.69", "tinyvec", "tracing", ] [[package]] name = "quinn-proto" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" dependencies = [ "bytes", + "getrandom 0.2.15", "rand 0.8.5", "ring 0.17.8", - "rustc-hash 2.0.0", - "rustls 0.23.15", + "rustc-hash 2.1.0", + "rustls 0.23.19", + "rustls-pki-types", "slab", - "thiserror", + "thiserror 2.0.6", "tinyvec", "tracing", + "web-time", ] [[package]] @@ -4138,10 +4272,11 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.5" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" +checksum = "52cd4b1eff68bf27940dd39811292c49e007f4d0b4c357358dc9b0197be6b527" dependencies = [ + "cfg_aliases 0.2.1", "libc", "once_cell", "socket2", @@ -4149,13 +4284,22 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "quote" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +dependencies = [ + "proc-macro2 0.4.30", +] + [[package]] name = "quote" version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ - "proc-macro2", + "proc-macro2 1.0.92", ] [[package]] @@ -4306,9 +4450,9 @@ version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -4319,7 +4463,7 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.8", + "regex-automata 0.4.9", "regex-syntax 0.8.5", ] @@ -4334,9 +4478,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", @@ -4372,7 +4516,7 @@ dependencies = [ "tokio", "tokio-stream", "tracing", - "typed-builder", + "typed-builder 0.18.2", "url", ] @@ -4451,20 +4595,20 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.8" +version = "0.12.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ "async-compression", "base64 0.22.1", "bytes", "futures-core", "futures-util", - "h2 0.4.6", - "http 1.1.0", + "h2 0.4.7", + "http 1.2.0", "http-body 1.0.1", "http-body-util", - "hyper 1.5.0", + "hyper 1.5.1", "hyper-rustls 0.27.3", "hyper-util", "ipnet", @@ -4474,16 +4618,16 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "quinn 0.11.5", - "rustls 0.23.15", + "quinn 0.11.6", + "rustls 0.23.19", "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls 0.26.1", "tokio-util", "tower-service", "url", @@ -4491,7 +4635,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 0.26.6", + "webpki-roots 0.26.7", "windows-registry", ] @@ -4507,7 +4651,7 @@ dependencies = [ "reqwest 0.11.27", "serde", "task-local-extensions", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -4524,7 +4668,7 @@ dependencies = [ "solana-sdk", "tokio", "tracing", - "typed-builder", + "typed-builder 0.2.0", "url", ] @@ -4592,8 +4736,8 @@ version = "0.7.45" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "503d1d27590a2b0a3a4ca4c94755aa2875657196ecbf401a42eff41d7de532c0" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", ] @@ -4604,19 +4748,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ "bytes", - "rlp-derive", "rustc-hex", ] [[package]] -name = "rlp-derive" +name = "role-management" version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +source = "git+https://github.com/eigerco/solana-axelar.git?rev=91c8cf2#91c8cf2aa0702d6bbaff21164d79f8640815fb53" dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", + "bincode", + "bitflags 2.6.0", + "borsh 1.5.3", + "program-utils", + "solana-program", ] [[package]] @@ -4693,9 +4837,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc-hash" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" [[package]] name = "rustc-hex" @@ -4732,15 +4876,15 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.37" +version = "0.38.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" +checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" dependencies = [ "bitflags 2.6.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4757,9 +4901,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.15" +version = "0.23.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fbb44d7acc4e873d613422379f69f237a1b141928c02f6bc6ccfddddc2d7993" +checksum = "934b404430bb06b3fae2cba809eb45a1ab1aecd64491213d7c3301b88393f8d1" dependencies = [ "once_cell", "ring 0.17.8", @@ -4804,6 +4948,9 @@ name = "rustls-pki-types" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" +dependencies = [ + "web-time", +] [[package]] name = "rustls-webpki" @@ -4850,35 +4997,11 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" -[[package]] -name = "scale-info" -version = "2.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aa7ffc1c0ef49b0452c6e2986abf2b07743320641ffd5fc63d552458e3b779b" -dependencies = [ - "cfg-if", - "derive_more 1.0.0", - "parity-scale-codec", - "scale-info-derive", -] - -[[package]] -name = "scale-info-derive" -version = "2.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46385cc24172cf615450267463f937c10072516359b3ff1cb24228a4a08bf951" -dependencies = [ - "proc-macro-crate 3.2.0", - "proc-macro2", - "quote", - "syn 2.0.85", -] - [[package]] name = "schannel" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ "windows-sys 0.59.0", ] @@ -4910,9 +5033,9 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -4960,9 +5083,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" dependencies = [ "core-foundation-sys", "libc", @@ -4985,18 +5108,18 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "semver-parser" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" dependencies = [ "pest", ] [[package]] name = "serde" -version = "1.0.213" +version = "1.0.216" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ea7893ff5e2466df8d720bb615088341b295f849602c6956047f8f80f0e9bc1" +checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" dependencies = [ "serde_derive", ] @@ -5021,20 +5144,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.213" +version = "1.0.216" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e85ad2009c50b58e87caa8cd6dac16bdf511bbfb7af6c33df902396aa480fa5" +checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "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", @@ -5070,7 +5193,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" dependencies = [ "serde", - "serde_with_macros", + "serde_with_macros 2.3.3", +] + +[[package]] +name = "serde_with" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.7.0", + "serde", + "serde_derive", + "serde_json", + "serde_with_macros 3.11.0", + "time", ] [[package]] @@ -5080,9 +5221,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" dependencies = [ "darling", - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", +] + +[[package]] +name = "serde_with_macros" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d846214a9854ef724f3da161b426242d8de7c1fc7de2f89bb1efcb154dca79d" +dependencies = [ + "darling", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -5243,9 +5396,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[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", @@ -5253,9 +5406,9 @@ dependencies = [ [[package]] name = "solana-account-decoder" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad3f0b04a6f8d8778488fe2c3e77e97866d8b61378c8a4d91e188e1444f98186" +checksum = "579e643c71b7529b512faba433b5337184cf086d4a879c083b419eabb602dd94" dependencies = [ "Inflector", "base64 0.22.1", @@ -5269,10 +5422,10 @@ dependencies = [ "solana-config-program", "solana-sdk", "spl-token", - "spl-token-2022", - "spl-token-group-interface", - "spl-token-metadata-interface", - "thiserror", + "spl-token-2022 4.0.0", + "spl-token-group-interface 0.3.0", + "spl-token-metadata-interface 0.4.0", + "thiserror 1.0.69", "zstd", ] @@ -5307,16 +5460,16 @@ dependencies = [ [[package]] name = "solana-clap-utils" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "855bb216b0862bc10ae515b1400a3f677527881f3e3df51e24bb1ba0bd514fcc" +checksum = "19cc2e303a4f81b7ede3e572380911b122718c6329d253d855d11a784c42658e" dependencies = [ "chrono", "clap 2.34.0", "rpassword", "solana-remote-wallet", "solana-sdk", - "thiserror", + "thiserror 1.0.69", "tiny-bip39", "uriparse", "url", @@ -5324,16 +5477,16 @@ dependencies = [ [[package]] name = "solana-client" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17a2e3cf4aa6b7ed64d33ea656507af4e754832ad3c8733fab6ff5eeb8b4249" +checksum = "e4042e0b2c2b44db89d59eab832b4a66c6fc03e2a7e9383e7b75faf76d162c61" dependencies = [ "async-trait", "bincode", "dashmap", "futures", "futures-util", - "indexmap 2.6.0", + "indexmap 2.7.0", "indicatif", "log", "quinn 0.10.2", @@ -5351,15 +5504,15 @@ dependencies = [ "solana-thin-client", "solana-tpu-client", "solana-udp-client", - "thiserror", + "thiserror 1.0.69", "tokio", ] [[package]] name = "solana-compute-budget" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29e90b1be747a3f2373c8b7f2e1bd4291249fc588647524789ff877cc57e7ad8" +checksum = "9747d10c30a2beb91b6950b65788dbf74cb39beb53c58814a859f0cccb4ada97" dependencies = [ "rustc_version 0.4.1", "solana-sdk", @@ -5367,9 +5520,9 @@ dependencies = [ [[package]] name = "solana-config-program" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "193009c562956c9672cb1fd6439a444367b1b0fd67f20f435ab6a4026e5ed187" +checksum = "44106069aec6950a4769622ab0eb3213d00be8bbcb35355570f914367616257c" dependencies = [ "bincode", "chrono", @@ -5381,49 +5534,48 @@ dependencies = [ [[package]] name = "solana-connection-cache" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe5a15ec1f3f9860e6171e5dd2d497974e7167f0ba15c8215d448b30f3bee12f" +checksum = "199dabec2156092380510e841691cd6783679dce5838dcb5c3f467ce3189df03" dependencies = [ "async-trait", "bincode", "crossbeam-channel", "futures-util", - "indexmap 2.6.0", + "indexmap 2.7.0", "log", "rand 0.8.5", "rayon", "solana-measure", "solana-metrics", "solana-sdk", - "thiserror", + "thiserror 1.0.69", "tokio", ] [[package]] name = "solana-curve25519" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0d6ca4dc435e6048f871424cd5ace2aeb06c2c82229d684903b03fb351072d4" +checksum = "0f42c6b987786d8cca7fc14749bbcbe514dd1e61d91b316b98ea1342cf670e18" dependencies = [ "bytemuck", "bytemuck_derive", "curve25519-dalek 3.2.1", "solana-program", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "solana-event-forwarder" version = "0.1.0" dependencies = [ - "axelar-message-primitives", - "axelar-rkyv-encoding", + "axelar-solana-gateway", "base64 0.22.1", "bs58", "eyre", "futures", - "gmp-gateway", + "gateway-event-stack", "pretty_assertions", "relayer-amplifier-api-integration", "relayer-engine", @@ -5440,13 +5592,15 @@ dependencies = [ "amplifier-api", "async-trait", "axelar-executable", - "axelar-rkyv-encoding", + "axelar-solana-encoding", + "axelar-solana-gateway", + "axelar-solana-governance", + "axelar-solana-its", "bs58", "common-serde-utils 0.1.0", "effective-tx-sender", "eyre", "futures", - "gmp-gateway", "mockall", "num-traits", "relayer-amplifier-api-integration", @@ -5458,14 +5612,14 @@ dependencies = [ "solana-sdk", "solana-transaction-status", "tracing", - "typed-builder", + "typed-builder 0.2.0", ] [[package]] name = "solana-inline-spl" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f94111dea93785d063d62894046f2a1c2fd822f107aa59c82272a34d2b98cfd4" +checksum = "a140c334bca2fe1c7794985655fe6412b29550eabd0be953e2cb7c2357013214" dependencies = [ "bytemuck", "rustc_version 0.4.1", @@ -5476,12 +5630,12 @@ dependencies = [ name = "solana-listener" version = "0.1.0" dependencies = [ + "axelar-solana-gateway", "chrono", "common-serde-utils 0.1.0", "common-serde-utils 0.1.0 (git+https://github.com/eigerco/axelar-relayer-core.git?branch=main)", "eyre", "futures", - "gmp-gateway", "relayer-engine", "serde", "solana-client", @@ -5489,15 +5643,15 @@ dependencies = [ "solana-transaction-status", "tokio", "tracing", - "typed-builder", + "typed-builder 0.2.0", "url", ] [[package]] name = "solana-logger" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7369915bd82d09dcb14a5ebba3431c4e54f19f2de0521ac56627d38016d45408" +checksum = "e79a42aecca4cb913f52b39141fc7ce766350e46332a9df57d8f9d14661dc2c7" dependencies = [ "env_logger", "lazy_static", @@ -5506,9 +5660,9 @@ dependencies = [ [[package]] name = "solana-measure" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b583a9a2a43e02231636662663d7804b70c1c0f3a42b1a641ab5d5964bc8ebf" +checksum = "128b0571ee7ffa4cb674f9dd88d15606d3c5a714ea07de3ab0a122735c340061" dependencies = [ "log", "solana-sdk", @@ -5516,9 +5670,9 @@ dependencies = [ [[package]] name = "solana-metrics" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68602687aeb613bd73933f27ce11b1ad58896a6a2fa71497fecae2987e614f61" +checksum = "719e8c73cb13ac616a04cf7a2e318a05d67ce198d5500ffea725bbe11d23a2e2" dependencies = [ "crossbeam-channel", "gethostname", @@ -5526,14 +5680,14 @@ dependencies = [ "log", "reqwest 0.11.27", "solana-sdk", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "solana-net-utils" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44f41b767c25ec128957b73414efe0797877240e1a9f033e910ab3bcd54748be" +checksum = "78adcd60bdd270ff6d60c422baa83bf0edba7e3660a4d1779083aae35c9c27ae" dependencies = [ "bincode", "clap 3.2.25", @@ -5554,9 +5708,9 @@ dependencies = [ [[package]] name = "solana-perf" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4e7809a71f40bc1d551c86203f11c463926dcfe5a892e74357de618aeffe13a" +checksum = "9ce2d03a15b8ddcec849b6c7c701aabcc8430926719d74b6c40c574aa0e2e2a8" dependencies = [ "ahash 0.8.11", "bincode", @@ -5581,9 +5735,9 @@ dependencies = [ [[package]] name = "solana-program" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2625a23c3813b620141ee447819b08d1b9a5f1c69a309754834e3f35798a21fb" +checksum = "59e18fa32fb3e915fd76faa6e8c73089d0f29dd15d9dd3970897e6d17dded920" dependencies = [ "ark-bn254", "ark-ec", @@ -5594,7 +5748,7 @@ dependencies = [ "bitflags 2.6.0", "blake3", "borsh 0.10.4", - "borsh 1.5.1", + "borsh 1.5.3", "bs58", "bv", "bytemuck", @@ -5621,15 +5775,15 @@ dependencies = [ "sha2 0.10.8", "sha3 0.10.8", "solana-sdk-macro", - "thiserror", + "thiserror 1.0.69", "wasm-bindgen", ] [[package]] name = "solana-program-runtime" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f6f48b286f452feb1f2151ffa4243a382affc126d90c60ad804d2759175b996" +checksum = "a35691ece2b5e204e30a3d06bdd5e9c43d71693ee9c5ebb401f8d2b5dabe59d3" dependencies = [ "base64 0.22.1", "bincode", @@ -5651,14 +5805,14 @@ dependencies = [ "solana-type-overrides", "solana-vote", "solana_rbpf", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "solana-pubsub-client" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f03618c313746b6c69ff04c00d210f8c4549b8c9e172ac90eb1d003e810e5353" +checksum = "8370f3ac44f623356c0475fd024488dfa702bbfd1eab92edb199bb05a0e53051" dependencies = [ "crossbeam-channel", "futures-util", @@ -5671,7 +5825,7 @@ dependencies = [ "solana-account-decoder", "solana-rpc-client-api", "solana-sdk", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-stream", "tokio-tungstenite", @@ -5681,9 +5835,9 @@ dependencies = [ [[package]] name = "solana-quic-client" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f54213cdc6f6a869f86603385563a78bc89012cfeb921e0a7ba8710d32f65fe" +checksum = "dfc7e8bf457ce4d9c4fd2ff12f467ee957fa309e2f10451f2f402357de30279f" dependencies = [ "async-mutex", "async-trait", @@ -5701,15 +5855,15 @@ dependencies = [ "solana-rpc-client-api", "solana-sdk", "solana-streamer", - "thiserror", + "thiserror 1.0.69", "tokio", ] [[package]] name = "solana-rayon-threadlimit" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "369b4d9a8e15906219ee60c1ce6c336ad04fe1217c9c1d625e1960ba5b174d24" +checksum = "cee0199cd96d8beb0cc1c9b82148f99467cf87bc25eb763b7ce680615a658467" dependencies = [ "lazy_static", "num_cpus", @@ -5717,9 +5871,9 @@ dependencies = [ [[package]] name = "solana-remote-wallet" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9d30c4d54739ca1f56113699c086d2dd5e7423eb5f894d0312757cace61e193" +checksum = "68c0274fa9bb3eacf696d4f0da888f44a6a9d6e6ef00c518eaddb8c0fb96c193" dependencies = [ "console", "dialoguer", @@ -5730,15 +5884,15 @@ dependencies = [ "qstring", "semver 1.0.23", "solana-sdk", - "thiserror", + "thiserror 1.0.69", "uriparse", ] [[package]] name = "solana-rpc-client" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12219fb033d7de4e0fe6c613d7ebea5e457d2ca71890ead6c2a3cb5e4534275" +checksum = "86d5bb5a3dc5512f00559807bf23ca7ad7a677c00aa87fc6307460ed3731ba7e" dependencies = [ "async-trait", "base64 0.22.1", @@ -5763,9 +5917,9 @@ dependencies = [ [[package]] name = "solana-rpc-client-api" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dc975656b2bd12d9a0d3b37d7188be83d5d40928d48c50450f4e1adab0eb795" +checksum = "f9a97cc3998953cc387015c1d7fad6aa8a320d3780e3ddc96f60d3544fea99b1" dependencies = [ "anyhow", "base64 0.22.1", @@ -5782,31 +5936,31 @@ dependencies = [ "solana-sdk", "solana-transaction-status", "solana-version", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "solana-rpc-client-nonce-utils" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d251b055f02d2fbbf30da82f10229e2bfe2c4ced7724b8d1311b6184a83589bb" +checksum = "859792ccf41789d66ddace34a416c3fe6777c3325ee295ea3a89ad0c2c555b63" dependencies = [ "clap 2.34.0", "solana-clap-utils", "solana-rpc-client", "solana-sdk", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "solana-sdk" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bec7d84513d65700740755c512a0d58b9f60dbbce683379c399d2c357b3ceb0" +checksum = "02782e56b06086b6eefe98a807f084c81813cc441e0f1839981f1a5b01ad7a24" dependencies = [ "bincode", "bitflags 2.6.0", - "borsh 1.5.1", + "borsh 1.5.3", "bs58", "bytemuck", "bytemuck_derive", @@ -5836,28 +5990,28 @@ dependencies = [ "serde_bytes", "serde_derive", "serde_json", - "serde_with", + "serde_with 2.3.3", "sha2 0.10.8", "sha3 0.10.8", "siphasher", "solana-program", "solana-sdk-macro", - "thiserror", + "thiserror 1.0.69", "uriparse", "wasm-bindgen", ] [[package]] name = "solana-sdk-macro" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93a5a1eabc890415d326707afe62cd7a2009236e8d899c1519566fc8f7e3977b" +checksum = "88859f5d5486fe029bc8937af5437fc027a2110bf9df34d5f8fbf46c7cf0497b" dependencies = [ "bs58", - "proc-macro2", - "quote", + "proc-macro2 1.0.92", + "quote 1.0.37", "rustversion", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -5868,9 +6022,9 @@ checksum = "468aa43b7edb1f9b7b7b686d5c3aeb6630dc1708e86e31343499dd5c4d775183" [[package]] name = "solana-streamer" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a66633bc2a7bf49f9d94ec7728bc92ca7e1a563ec2d1752b1501170f48392b1" +checksum = "9abcd34b637b34371a0f1dadff431b80154b3169dd275641cf9d7cfd6b3e2176" dependencies = [ "async-channel", "bytes", @@ -5878,7 +6032,7 @@ dependencies = [ "dashmap", "futures-util", "histogram", - "indexmap 2.6.0", + "indexmap 2.7.0", "itertools 0.12.1", "libc", "log", @@ -5895,16 +6049,16 @@ dependencies = [ "solana-perf", "solana-sdk", "solana-transaction-metrics-tracker", - "thiserror", + "thiserror 1.0.69", "tokio", "x509-parser", ] [[package]] name = "solana-thin-client" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc6717f63e619d8062f9ba9f874dec1fa21e5dbaf85f9a6bc8adba1b97c4df46" +checksum = "48c618d5027222b62329f732fe5ea9b841c20293131844a7f98270f999aa5d0c" dependencies = [ "bincode", "log", @@ -5917,14 +6071,14 @@ dependencies = [ [[package]] name = "solana-tpu-client" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c524c75954fd3ca8f7cdcb386ab70b8861c671a82ed7310e8ed50aa4318b093c" +checksum = "11bc9151bd2a0bd8ca37ca54b32e8175cace98621b75c72e4ca1e9b7d69c52c3" dependencies = [ "async-trait", "bincode", "futures-util", - "indexmap 2.6.0", + "indexmap 2.7.0", "indicatif", "log", "rayon", @@ -5935,15 +6089,15 @@ dependencies = [ "solana-rpc-client", "solana-rpc-client-api", "solana-sdk", - "thiserror", + "thiserror 1.0.69", "tokio", ] [[package]] name = "solana-transaction-metrics-tracker" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439f96c03d9c2f133b51fa82f227a09cf1f8d5fc63b70d7754d75c02bb7f9e5e" +checksum = "38ef92c6a3bab7f359ef30356237c00638204a8dbd3ee6185ec131205fbbea9b" dependencies = [ "Inflector", "base64 0.22.1", @@ -5957,14 +6111,14 @@ dependencies = [ [[package]] name = "solana-transaction-status" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b6361f2bb0020a269108e8630c174ad97a72e8ba1fe52a7ccaae27fc1219c7" +checksum = "036c2189a6a5de419fc4ac887f5bee83bc6facea75cdcfe02773a8b83574f846" dependencies = [ "Inflector", "base64 0.22.1", "bincode", - "borsh 1.5.1", + "borsh 1.5.3", "bs58", "lazy_static", "log", @@ -5973,20 +6127,20 @@ dependencies = [ "serde_json", "solana-account-decoder", "solana-sdk", - "spl-associated-token-account", + "spl-associated-token-account 4.0.0", "spl-memo", "spl-token", - "spl-token-2022", - "spl-token-group-interface", - "spl-token-metadata-interface", - "thiserror", + "spl-token-2022 4.0.0", + "spl-token-group-interface 0.3.0", + "spl-token-metadata-interface 0.4.0", + "thiserror 1.0.69", ] [[package]] name = "solana-type-overrides" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18ee8181704d686981cf4c1365a15f16e1b680542c160ddd4d07ec33e0be747a" +checksum = "80bb3af963b890ef6610357d454a30b157cc1f94eaf9e5fc2b8851a824a42583" dependencies = [ "lazy_static", "rand 0.8.5", @@ -5994,24 +6148,24 @@ dependencies = [ [[package]] name = "solana-udp-client" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b50a813338c28da988ec0e0fd8c53f756f93c63f403a3ac46ba2c15138dd60a4" +checksum = "c9609b5c5859437562228ced2aa7cf2a21c1c9cc06c0e27b0919875f327bff7a" dependencies = [ "async-trait", "solana-connection-cache", "solana-net-utils", "solana-sdk", "solana-streamer", - "thiserror", + "thiserror 1.0.69", "tokio", ] [[package]] name = "solana-version" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe60c22d8bd1325ab3379950dcc14027fa40e3de9a39a0b22645f81803d6cfaf" +checksum = "9f3ae5a33994b43d564bbe699f21a6b7bc18fd325a3579887c3f722276b91344" dependencies = [ "log", "rustc_version 0.4.1", @@ -6023,9 +6177,9 @@ dependencies = [ [[package]] name = "solana-vote" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62a9aa08d6d925b438d569d5e56bad9eb98fd2acd91bf76274ed59045dc77f9f" +checksum = "51c6946fb194e001c3aef2ae8cf6385f4f819a09bbdcf2f87e418876697d47f5" dependencies = [ "itertools 0.12.1", "log", @@ -6033,14 +6187,14 @@ dependencies = [ "serde", "serde_derive", "solana-sdk", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "solana-vote-program" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7a9b9023943c6ba747d6e1c5bf16343e510060cbef3f576d8527b33938c48a" +checksum = "c767b55ffbe8fdbdcbf20b910fd13e697d4ef4ab9ebdec2899f7ea3beb4820be" dependencies = [ "bincode", "log", @@ -6053,14 +6207,43 @@ dependencies = [ "solana-program", "solana-program-runtime", "solana-sdk", - "thiserror", + "thiserror 1.0.69", +] + +[[package]] +name = "solana-zk-sdk" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a4240a6eaae072b52c8591f31c7435ce8769feda5a15de1532090cbcbeddaba" +dependencies = [ + "aes-gcm-siv", + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek 3.2.1", + "itertools 0.12.1", + "lazy_static", + "merlin", + "num-derive", + "num-traits", + "rand 0.7.3", + "serde", + "serde_derive", + "serde_json", + "sha3 0.9.1", + "solana-program", + "solana-sdk", + "subtle", + "thiserror 1.0.69", + "zeroize", ] [[package]] name = "solana-zk-token-sdk" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9c1b81daa97afa8690da1a72a453f4c7faf4dc05c4205074b2cbd8f4e5490c" +checksum = "413a83694f06f0e299064ab294c5537aa00c5d8625d4bba9daf6037696ebfe1f" dependencies = [ "aes-gcm-siv", "base64 0.22.1", @@ -6083,7 +6266,7 @@ dependencies = [ "solana-program", "solana-sdk", "subtle", - "thiserror", + "thiserror 1.0.69", "zeroize", ] @@ -6102,7 +6285,7 @@ dependencies = [ "rand 0.8.5", "rustc-demangle", "scroll", - "thiserror", + "thiserror 1.0.69", "winapi", ] @@ -6135,13 +6318,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68034596cf4804880d265f834af1ff2f821ad5293e41fa0f8f59086c181fc38e" dependencies = [ "assert_matches", - "borsh 1.5.1", + "borsh 1.5.3", + "num-derive", + "num-traits", + "solana-program", + "spl-token", + "spl-token-2022 4.0.0", + "thiserror 1.0.69", +] + +[[package]] +name = "spl-associated-token-account" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "714b53f7312c2802c62f14bc8a07916c2c872761e3d6be97e99fd432be7799ca" +dependencies = [ + "borsh 1.5.3", "num-derive", "num-traits", "solana-program", + "spl-associated-token-account-client", "spl-token", - "spl-token-2022", - "thiserror", + "spl-token-2022 5.0.2", + "thiserror 1.0.69", +] + +[[package]] +name = "spl-associated-token-account-client" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c5c1e2d53941ea7ebc4be3f86302a3c6c5178baa932bbc038468429e6900d36" +dependencies = [ + "solana-program", ] [[package]] @@ -6161,9 +6369,9 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9e8418ea6269dcfb01c712f0444d2c75542c04448b480e87de59d2865edc750" dependencies = [ - "quote", + "quote 1.0.37", "spl-discriminator-syn", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -6172,11 +6380,11 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c1f05593b7ca9eac7caca309720f2eafb96355e037e6d373b909a80fe7b69b9" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.92", + "quote 1.0.37", "sha2 0.10.8", - "syn 2.0.85", - "thiserror", + "syn 2.0.90", + "thiserror 1.0.69", ] [[package]] @@ -6194,7 +6402,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c704c88fc457fa649ba3aabe195c79d885c3f26709efaddc453c8de352c90b87" dependencies = [ - "borsh 1.5.1", + "borsh 1.5.3", "bytemuck", "bytemuck_derive", "solana-program", @@ -6202,6 +6410,21 @@ dependencies = [ "spl-program-error", ] +[[package]] +name = "spl-pod" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00e38c99f09d58df06ca9a29fc0211786a4c34f4d099c1df27b1abaa206569a4" +dependencies = [ + "borsh 1.5.3", + "bytemuck", + "bytemuck_derive", + "serde", + "solana-program", + "solana-zk-sdk", + "spl-program-error", +] + [[package]] name = "spl-program-error" version = "0.5.0" @@ -6212,7 +6435,7 @@ dependencies = [ "num-traits", "solana-program", "spl-program-error-derive", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -6221,10 +6444,10 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d375dd76c517836353e093c2dbb490938ff72821ab568b545fd30ab3256b3e" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.92", + "quote 1.0.37", "sha2 0.10.8", - "syn 2.0.85", + "syn 2.0.90", ] [[package]] @@ -6236,9 +6459,23 @@ dependencies = [ "bytemuck", "solana-program", "spl-discriminator", - "spl-pod", + "spl-pod 0.3.1", "spl-program-error", - "spl-type-length-value", + "spl-type-length-value 0.5.0", +] + +[[package]] +name = "spl-tlv-account-resolution" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ffc5c76926c1cbc8d92ac1d9341328308d15bae04a67da5a226e36d5bc395a" +dependencies = [ + "bytemuck", + "solana-program", + "spl-discriminator", + "spl-pod 0.4.0", + "spl-program-error", + "spl-type-length-value 0.6.0", ] [[package]] @@ -6253,7 +6490,7 @@ dependencies = [ "num-traits", "num_enum", "solana-program", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -6271,13 +6508,78 @@ dependencies = [ "solana-security-txt", "solana-zk-token-sdk", "spl-memo", - "spl-pod", + "spl-pod 0.3.1", + "spl-token", + "spl-token-group-interface 0.3.0", + "spl-token-metadata-interface 0.4.0", + "spl-transfer-hook-interface 0.7.0", + "spl-type-length-value 0.5.0", + "thiserror 1.0.69", +] + +[[package]] +name = "spl-token-2022" +version = "5.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b788a8c34a917b68b4ed2cdec255d03cc09ccba21545dac39c08a97fce640f" +dependencies = [ + "arrayref", + "base64 0.22.1", + "bytemuck", + "num-derive", + "num-traits", + "num_enum", + "serde", + "serde_with 3.11.0", + "solana-program", + "solana-security-txt", + "solana-zk-sdk", + "spl-memo", + "spl-pod 0.4.0", "spl-token", - "spl-token-group-interface", - "spl-token-metadata-interface", - "spl-transfer-hook-interface", - "spl-type-length-value", - "thiserror", + "spl-token-confidential-transfer-ciphertext-arithmetic", + "spl-token-confidential-transfer-proof-extraction", + "spl-token-confidential-transfer-proof-generation", + "spl-token-group-interface 0.4.2", + "spl-token-metadata-interface 0.5.1", + "spl-transfer-hook-interface 0.8.2", + "spl-type-length-value 0.6.0", + "thiserror 1.0.69", +] + +[[package]] +name = "spl-token-confidential-transfer-ciphertext-arithmetic" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48df72fb98b4069979aa4806d4a634ad6f08cb0358e732e6fbac231c5dc075bd" +dependencies = [ + "base64 0.22.1", + "bytemuck", + "solana-curve25519", + "solana-zk-sdk", +] + +[[package]] +name = "spl-token-confidential-transfer-proof-extraction" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae2ce92a0b9673c44207b21d99526b96d557d5a25752f36c38fae37c49129c3b" +dependencies = [ + "bytemuck", + "solana-curve25519", + "solana-zk-sdk", + "thiserror 1.0.69", +] + +[[package]] +name = "spl-token-confidential-transfer-proof-generation" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "216517cc8cd26dfe768521542f221f91049be102d1eefd8054cde881d1b5d267" +dependencies = [ + "curve25519-dalek 3.2.1", + "solana-zk-sdk", + "thiserror 1.0.69", ] [[package]] @@ -6289,7 +6591,20 @@ dependencies = [ "bytemuck", "solana-program", "spl-discriminator", - "spl-pod", + "spl-pod 0.3.1", + "spl-program-error", +] + +[[package]] +name = "spl-token-group-interface" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c54728921a6f180525c4f3a4cc3b231db8da940681c8009259faa65d84c6196" +dependencies = [ + "bytemuck", + "solana-program", + "spl-discriminator", + "spl-pod 0.4.0", "spl-program-error", ] @@ -6299,12 +6614,27 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6c2318ddff97e006ed9b1291ebec0750a78547f870f62a69c56fe3b46a5d8fc" dependencies = [ - "borsh 1.5.1", + "borsh 1.5.3", "solana-program", "spl-discriminator", - "spl-pod", + "spl-pod 0.3.1", "spl-program-error", - "spl-type-length-value", + "spl-type-length-value 0.5.0", +] + +[[package]] +name = "spl-token-metadata-interface" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27c7a6d2a2a4f23c8f051ba2f7edb5689f1b534b4126bd9b4ae4177685e9a341" +dependencies = [ + "borsh 1.5.3", + "serde", + "solana-program", + "spl-discriminator", + "spl-pod 0.4.0", + "spl-program-error", + "spl-type-length-value 0.6.0", ] [[package]] @@ -6317,10 +6647,26 @@ dependencies = [ "bytemuck", "solana-program", "spl-discriminator", - "spl-pod", + "spl-pod 0.3.1", + "spl-program-error", + "spl-tlv-account-resolution 0.7.0", + "spl-type-length-value 0.5.0", +] + +[[package]] +name = "spl-transfer-hook-interface" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b82e5ad62ad342d8fbb907b2a7aede7a5a258ce16366c26a686acc1df431fc63" +dependencies = [ + "arrayref", + "bytemuck", + "solana-program", + "spl-discriminator", + "spl-pod 0.4.0", "spl-program-error", - "spl-tlv-account-resolution", - "spl-type-length-value", + "spl-tlv-account-resolution 0.8.1", + "spl-type-length-value 0.6.0", ] [[package]] @@ -6332,10 +6678,29 @@ dependencies = [ "bytemuck", "solana-program", "spl-discriminator", - "spl-pod", + "spl-pod 0.3.1", + "spl-program-error", +] + +[[package]] +name = "spl-type-length-value" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69c08deb8332a6c051f6e846b5e9c962695295dd97e0e151dccf3ef85dcf01b4" +dependencies = [ + "bytemuck", + "solana-program", + "spl-discriminator", + "spl-pod 0.4.0", "spl-program-error", ] +[[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" @@ -6361,52 +6726,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] -name = "strum" -version = "0.26.3" +name = "subtle" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" -dependencies = [ - "strum_macros", -] +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] -name = "strum_macros" -version = "0.26.4" +name = "syn" +version = "0.15.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.85", + "proc-macro2 0.4.30", + "quote 0.6.13", + "unicode-xid 0.1.0", ] -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - [[package]] name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.92", + "quote 1.0.37", "unicode-ident", ] [[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", + "proc-macro2 1.0.92", + "quote 1.0.37", "unicode-ident", ] @@ -6417,21 +6771,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c837dc8852cb7074e46b444afb81783140dab12c58867b49fb3898fbafedf7ea" dependencies = [ "paste", - "proc-macro2", - "quote", - "syn 2.0.85", -] - -[[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", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -6442,9 +6784,9 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ "futures-core", ] @@ -6455,10 +6797,21 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.92", + "quote 1.0.37", "syn 1.0.109", - "unicode-xid", + "unicode-xid 0.2.6", +] + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -6508,12 +6861,12 @@ 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 2.1.1", + "fastrand 2.3.0", "once_cell", "rustix", "windows-sys 0.59.0", @@ -6550,9 +6903,9 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5999e24eaa32083191ba4e425deb75cdf25efefabe5aaccb7446dd0d4122a3f5" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -6561,7 +6914,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]] @@ -6572,22 +6925,42 @@ checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" [[package]] name = "thiserror" -version = "1.0.65" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec2a1820ebd077e2b90c4df007bebf344cd394098a13c563957d0afc83ea47" +dependencies = [ + "thiserror-impl 2.0.6", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ - "thiserror-impl", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] name = "thiserror-impl" -version = "1.0.65" +version = "2.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602" +checksum = "d65750cab40f4ff1929fb1ba509e9914eb756131cef4210da8d5d700d26f6312" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -6602,9 +6975,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", @@ -6623,9 +6996,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", @@ -6644,7 +7017,7 @@ dependencies = [ "rand 0.7.3", "rustc-hash 1.1.0", "sha2 0.9.9", - "thiserror", + "thiserror 1.0.69", "unicode-normalization", "wasm-bindgen", "zeroize", @@ -6659,6 +7032,16 @@ dependencies = [ "crunchy", ] +[[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" @@ -6699,9 +7082,9 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -6716,20 +7099,19 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" dependencies = [ - "rustls 0.23.15", - "rustls-pki-types", + "rustls 0.23.19", "tokio", ] [[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", @@ -6753,9 +7135,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", @@ -6800,7 +7182,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", @@ -6818,11 +7200,11 @@ dependencies = [ "axum", "base64 0.22.1", "bytes", - "h2 0.4.6", - "http 1.1.0", + "h2 0.4.7", + "http 1.2.0", "http-body 1.0.1", "http-body-util", - "hyper 1.5.0", + "hyper 1.5.1", "hyper-timeout", "hyper-util", "percent-encoding", @@ -6885,9 +7267,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", @@ -6897,20 +7279,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", + "proc-macro2 1.0.92", + "quote 1.0.37", + "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", @@ -6918,9 +7300,9 @@ dependencies = [ [[package]] name = "tracing-error" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e" +checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db" dependencies = [ "tracing", "tracing-subscriber", @@ -6939,9 +7321,9 @@ dependencies = [ [[package]] name = "tracing-serde" -version = "0.1.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +checksum = "704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1" dependencies = [ "serde", "tracing-core", @@ -6951,9 +7333,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 = [ "matchers", "nu-ansi-term", @@ -6993,19 +7375,39 @@ dependencies = [ "rand 0.8.5", "rustls 0.21.12", "sha1", - "thiserror", + "thiserror 1.0.69", "url", "utf-8", "webpki-roots 0.24.0", ] +[[package]] +name = "typed-builder" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e63e36dcd1cb9bfb9ec8d51ccccaf53c556d45ae0d2404abfd0a61bb320698c" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "syn 0.15.44", +] + [[package]] name = "typed-builder" version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77739c880e00693faef3d65ea3aad725f196da38b22fdc7ea6ded6e1ce4d3add" dependencies = [ - "typed-builder-macro", + "typed-builder-macro 0.18.2", +] + +[[package]] +name = "typed-builder" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e14ed59dc8b7b26cacb2a92bad2e8b1f098806063898ab42a3bd121d7d45e75" +dependencies = [ + "typed-builder-macro 0.20.0", ] [[package]] @@ -7014,9 +7416,20 @@ version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f718dfaf347dcb5b983bfc87608144b0bad87970aebcbea5ce44d2a30c08e63" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", +] + +[[package]] +name = "typed-builder-macro" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "560b82d656506509d43abe30e0ba64c56b1953ab3d4fe7ba5902747a7a3cedd5" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] @@ -7031,6 +7444,27 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" +[[package]] +name = "udigest" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cd61fa9fb78569e9fe34acf0048fd8cb9ebdbacc47af740745487287043ff0" +dependencies = [ + "digest 0.10.7", + "udigest-derive", +] + +[[package]] +name = "udigest-derive" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "603329303137e0d59238ee4d6b9c085eada8e2a9d20666f3abd9dadf8f8543f4" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.37", + "syn 2.0.90", +] + [[package]] name = "uint" version = "0.9.5" @@ -7055,17 +7489,11 @@ version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" -[[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" @@ -7082,6 +7510,18 @@ 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.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + [[package]] name = "unicode-xid" version = "0.2.6" @@ -7131,9 +7571,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", @@ -7147,6 +7587,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" @@ -7247,9 +7699,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", @@ -7258,65 +7710,65 @@ 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", + "proc-macro2 1.0.92", + "quote 1.0.37", + "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", + "quote 1.0.37", "wasm-bindgen-macro-support", ] [[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", + "proc-macro2 1.0.92", + "quote 1.0.37", + "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 = "wasm-streams" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e072d4e72f700fb3443d8fe94a39315df013eef1104903cdb0a2abd322bbecd" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" dependencies = [ "futures-util", "js-sys", @@ -7327,9 +7779,19 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.72" +version = "0.3.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +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 = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", @@ -7352,9 +7814,9 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webpki-roots" -version = "0.26.6" +version = "0.26.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" +checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" dependencies = [ "rustls-pki-types", ] @@ -7605,6 +8067,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 = "wyz" version = "0.5.1" @@ -7628,30 +8102,30 @@ dependencies = [ "nom", "oid-registry", "rusticata-macros", - "thiserror", + "thiserror 1.0.69", "time", ] [[package]] name = "xshell" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db0ab86eae739efd1b054a8d3d16041914030ac4e01cd1dca0cf252fd8b6437" +checksum = "9e7290c623014758632efe00737145b6867b66292c42167f2ec381eb566a373d" dependencies = [ "xshell-macros", ] [[package]] name = "xshell-macros" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d422e8e38ec76e2f06ee439ccc765e9c6a9638b9e7c9f2e8255e4d41e8bd852" +checksum = "32ac00cd3f8ec9c1d33fb3e7958a82df6989c42d747bd326c822b1d625283547" [[package]] name = "xtask" version = "0.1.0" dependencies = [ - "clap 4.5.20", + "clap 4.5.23", "color-eyre", "eyre", "xshell", @@ -7663,6 +8137,30 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" +[[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 1.0.92", + "quote 1.0.37", + "syn 2.0.90", + "synstructure 0.13.1", +] + [[package]] name = "zerocopy" version = "0.7.35" @@ -7679,9 +8177,30 @@ version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "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 1.0.92", + "quote 1.0.37", + "syn 2.0.90", + "synstructure 0.13.1", ] [[package]] @@ -7699,9 +8218,31 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", + "proc-macro2 1.0.92", + "quote 1.0.37", + "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 1.0.92", + "quote 1.0.37", + "syn 2.0.90", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 4f33e9a..96eab6f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -79,10 +79,13 @@ relayer-amplifier-state = { git = "https://github.com/eigerco/axelar-relayer-cor core-common-serde-utils = { git = "https://github.com/eigerco/axelar-relayer-core.git", package = "common-serde-utils", branch = "main" } # Solana Gateway -gmp-gateway = { git = "https://github.com/eigerco/solana-axelar.git", branch = "main", features = ["no-entrypoint"] } -axelar-rkyv-encoding = { git = "https://github.com/eigerco/solana-axelar.git", branch = "main" } -axelar-message-primitives = { git = "https://github.com/eigerco/solana-axelar.git", branch = "main" } -axelar-executable = { git = "https://github.com/eigerco/solana-axelar.git", branch = "main" } +axelar-solana-gateway = { git = "https://github.com/eigerco/solana-axelar.git", rev = "91c8cf2", features = ["no-entrypoint"] } +axelar-solana-its = { git = "https://github.com/eigerco/solana-axelar.git", rev = "91c8cf2", features = ["no-entrypoint"] } +axelar-solana-governance = { git = "https://github.com/eigerco/solana-axelar.git", rev = "91c8cf2", features = ["no-entrypoint"] } +gateway-event-stack = { git = "https://github.com/eigerco/solana-axelar.git", rev = "91c8cf2" } +axelar-solana-encoding = { git = "https://github.com/eigerco/solana-axelar.git", rev = "91c8cf2" } +axelar-message-primitives = { git = "https://github.com/eigerco/solana-axelar.git", rev = "91c8cf2" } +axelar-executable = { git = "https://github.com/eigerco/solana-axelar.git", rev = "91c8cf2" } # CLI clap = { version = "4", features = ["derive"] } @@ -98,14 +101,14 @@ bs58 = "0.5" redact = { version = "0.1", features = ["serde"] } thiserror = "1" uuid = { version = "1.2", features = ["v4", "serde"] } -typed-builder = "0.18" +typed-builder = "0.2" derive_builder = "0.20" bnum = "0.12" hex = "0.4" quanta = "0.12" backoff = { version = "0.4", features = ["tokio"] } indoc = "2" -itertools = "0.12" +itertools = "0.13" num-traits = "0.2" memmap2 = "0.9" bytemuck = "1.19" @@ -114,10 +117,10 @@ bytemuck = "1.19" serde = { version = "1", features = ["derive"] } toml = "0.8" serde_json = "1" -simd-json = "0.13" +simd-json = "0.14" # Tests -rstest = { version = "0.21" } +rstest = { version = "0.23" } test-log = { version = "0.2", features = ["trace"], default-features = false } pretty_assertions = "1" mockall = "0.13" @@ -130,12 +133,12 @@ color-eyre = "0.6" reqwest = { version = "0.12", default-features = false, features = ["json", "gzip", "deflate", "rustls-tls", "stream", "http2"] } # Solana -solana-client = "2" -solana-rpc-client = "2" -solana-rpc-client-api = "2" -solana-program = "2" -solana-sdk = "2" -solana-transaction-status = "2" +solana-client = "=2.0.16" +solana-rpc-client = "=2.0.16" +solana-rpc-client-api = "=2.0.16" +solana-program = "=2.0.16" +solana-sdk = "=2.0.16" +solana-transaction-status = "=2.0.16" # Async tokio = { version = "1", features = ["rt", "signal", "rt-multi-thread", "macros"] } diff --git a/crates/solana-axelar-relayer/src/main.rs b/crates/solana-axelar-relayer/src/main.rs index 81ba7f5..5cd0784 100644 --- a/crates/solana-axelar-relayer/src/main.rs +++ b/crates/solana-axelar-relayer/src/main.rs @@ -234,6 +234,6 @@ mod tests { FAbbOyAg51Xklqm2Q954WWFmu3lluHCWUGB9eSHshIurTmDd+8o15A== -----END PRIVATE KEY----- "} - .to_string() + .to_owned() } } diff --git a/crates/solana-event-forwarder/Cargo.toml b/crates/solana-event-forwarder/Cargo.toml index 5735927..b5c1a37 100644 --- a/crates/solana-event-forwarder/Cargo.toml +++ b/crates/solana-event-forwarder/Cargo.toml @@ -12,13 +12,12 @@ futures.workspace = true relayer-amplifier-api-integration.workspace = true solana-listener.workspace = true relayer-engine.workspace = true -gmp-gateway.workspace = true tracing.workspace = true eyre.workspace = true bs58.workspace = true solana-sdk.workspace = true -axelar-message-primitives.workspace = true -axelar-rkyv-encoding.workspace = true +axelar-solana-gateway.workspace = true +gateway-event-stack.workspace = true [dev-dependencies] base64.workspace = true diff --git a/crates/solana-event-forwarder/src/component.rs b/crates/solana-event-forwarder/src/component.rs index cbc9cba..fd2d375 100644 --- a/crates/solana-event-forwarder/src/component.rs +++ b/crates/solana-event-forwarder/src/component.rs @@ -1,17 +1,17 @@ use core::future::Future; use core::pin::Pin; -use axelar_message_primitives::U256; -use axelar_rkyv_encoding::rkyv::{self, Deserialize as _}; +use axelar_solana_gateway::processor::GatewayEvent; use futures::{SinkExt as _, StreamExt as _}; -use gmp_gateway::events::{EventContainer, GatewayEvent}; +use gateway_event_stack::{ + build_program_event_stack, parse_gateway_logs, MatchContext, ProgramInvocationState, +}; use relayer_amplifier_api_integration::amplifier_api::types::{ BigInt, CallEvent, CallEventMetadata, CommandId, Event, EventBase, EventId, EventMetadata, GatewayV2Message, MessageApprovedEvent, MessageApprovedEventMetadata, MessageId, PublishEventsRequest, SignersRotatedEvent, SignersRotatedMetadata, Token, TxEvent, TxId, }; use relayer_amplifier_api_integration::AmplifierCommand; -use solana_sdk::pubkey::Pubkey; /// The core component that is responsible for ingesting raw Solana events. /// @@ -51,7 +51,8 @@ impl SolanaEventForwarder { let match_context = MatchContext::new(self.config.gateway_program_id.to_string().as_str()); while let Some(message) = self.solana_listener_client.log_receiver.next().await { - let gateway_program_stack = build_program_event_stack(&match_context, &message.logs); + let gateway_program_stack = + build_program_event_stack(&match_context, &message.logs, parse_gateway_logs); let total_cost = message.cost_in_lamports; // Collect all successful events into a vector @@ -79,7 +80,7 @@ impl SolanaEventForwarder { .filter_map(|(log_index, event)| { map_gateway_event_to_amplifier_event( self.config.source_chain_name.as_str(), - &event, + event, &message, log_index, price_for_event, @@ -102,97 +103,6 @@ impl SolanaEventForwarder { } } -#[derive(Debug, PartialEq, Eq)] -enum ProgramInvocationState { - InProgress(Vec<(usize, EventContainer)>), - Succeeded(Vec<(usize, EventContainer)>), - Failed, -} - -#[expect(clippy::struct_field_names, reason = "improves readability")] -struct MatchContext { - /// the log prefix that indicates that we've entered the target program - expected_start: String, - /// the log prefix that indicates that the target program succeeded - expected_success: String, - /// the log prefix that indicates that the target program failed - expected_failure: String, -} - -impl MatchContext { - pub(crate) fn new(gateway_program_id: &str) -> Self { - Self { - expected_start: format!("Program {gateway_program_id} invoke"), - expected_success: format!("Program {gateway_program_id} success"), - expected_failure: format!("Program {gateway_program_id} failed"), - } - } -} - -fn build_program_event_stack(ctx: &MatchContext, logs: &[T]) -> Vec -where - T: AsRef, -{ - let logs = logs.iter().enumerate(); - let mut program_stack: Vec = Vec::new(); - - for (idx, log) in logs { - tracing::trace!(log =?log.as_ref(), "incoming log from Solana"); - if log.as_ref().starts_with(ctx.expected_start.as_str()) { - // Start a new program invocation - program_stack.push(ProgramInvocationState::InProgress(Vec::new())); - } else if log.as_ref().starts_with(ctx.expected_success.as_str()) { - handle_success_log(&mut program_stack); - } else if log.as_ref().starts_with(ctx.expected_failure.as_str()) { - handle_failure_log(&mut program_stack); - } else { - // Process logs if inside a program invocation - parse_execution_log(&mut program_stack, log, idx); - } - } - program_stack -} - -fn parse_execution_log(program_stack: &mut [ProgramInvocationState], log: &T, idx: usize) -where - T: AsRef, -{ - let Some(&mut ProgramInvocationState::InProgress(ref mut events)) = program_stack.last_mut() - else { - return; - }; - let Some(gateway_event) = GatewayEvent::parse_log(log.as_ref()) else { - return; - }; - events.push((idx, gateway_event)); -} - -fn handle_failure_log(program_stack: &mut Vec) { - // Mark the current program invocation as failed - if program_stack.pop().is_some() { - program_stack.push(ProgramInvocationState::Failed); - } else { - tracing::warn!("Program failure without matching invocation"); - } -} - -fn handle_success_log(program_stack: &mut Vec) { - // Mark the current program invocation as succeeded - let Some(state) = program_stack.pop() else { - tracing::warn!("Program success without matching invocation"); - return; - }; - match state { - ProgramInvocationState::InProgress(events) => { - program_stack.push(ProgramInvocationState::Succeeded(events)); - } - ProgramInvocationState::Succeeded(_) | ProgramInvocationState::Failed => { - // This should not happen - tracing::warn!("Unexpected state when marking program success"); - } - } -} - #[expect( clippy::too_many_lines, clippy::cognitive_complexity, @@ -200,14 +110,11 @@ fn handle_success_log(program_stack: &mut Vec) { )] fn map_gateway_event_to_amplifier_event( source_chain: &str, - event: &EventContainer, + event: GatewayEvent, message: &solana_listener::SolanaTransaction, log_index: usize, price_per_event_in_lamports: u64, ) -> Option { - use gmp_gateway::events::ArchivedGatewayEvent::{ - CallContract, MessageApproved, MessageExecuted, OperatorshipTransferred, SignersRotated, - }; let signature = message.signature.to_string(); let event_id = EventId::new(&signature, log_index); let tx_id = TxId(signature.clone()); @@ -216,10 +123,10 @@ fn map_gateway_event_to_amplifier_event( clippy::little_endian_bytes, reason = "we are guaranteed correct conversion" )] - match *event.parse() { - CallContract(ref call_contract) => { + match event { + GatewayEvent::CallContract(call_contract) => { let message_id = MessageId::new(&signature, log_index); - let source_address = Pubkey::new_from_array(call_contract.sender).to_string(); + let source_address = call_contract.sender_key.to_string(); let amplifier_event = Event::Call( CallEvent::builder() .base( @@ -241,24 +148,20 @@ fn map_gateway_event_to_amplifier_event( .message_id(message_id) .source_chain(source_chain.to_owned()) .source_address(source_address) - .destination_address(call_contract.destination_address.to_string()) + .destination_address(call_contract.destination_contract_address) .payload_hash(call_contract.payload_hash.to_vec()) .build(), ) - .destination_chain(call_contract.destination_chain.to_string()) - .payload(call_contract.payload.to_vec()) + .destination_chain(call_contract.destination_chain) + .payload(call_contract.payload) .build(), ); Some(amplifier_event) } - SignersRotated(ref signers) => { + GatewayEvent::VerifierSetRotated(signers) => { tracing::info!(?signers, "Signers rotated"); - let decoded_u256: U256 = signers - .new_epoch - .deserialize(&mut rkyv::Infallible) - .unwrap(); - let le_bytes = decoded_u256.to_le_bytes(); + let le_bytes = signers.epoch.to_le_bytes(); let (le_u64, _) = le_bytes.split_first_chunk::<8>()?; let epoch = u64::from_le_bytes(*le_u64); @@ -274,7 +177,7 @@ fn map_gateway_event_to_amplifier_event( .finalized(Some(true)) .extra( SignersRotatedMetadata::builder() - .signer_hash(signers.new_signers_hash.to_vec()) + .signer_hash(signers.verifier_set_hash.to_vec()) .epoch(epoch) .build(), ) @@ -292,12 +195,12 @@ fn map_gateway_event_to_amplifier_event( ); Some(amplifier_event) } - MessageApproved(ref approved_message) => { + GatewayEvent::MessageApproved(approved_message) => { let command_id = approved_message.command_id; - let message_id = TxEvent( - String::from_utf8(approved_message.message_id.to_vec()) - .expect("message id is not a valid String"), - ); + let span = tracing::info_span!("message", message_id = ?approved_message.cc_id_id); + let _g = span.enter(); + + let message_id = TxEvent(approved_message.cc_id_id); let amplifier_event = Event::MessageApproved( MessageApprovedEvent::builder() .base( @@ -307,10 +210,7 @@ fn map_gateway_event_to_amplifier_event( EventMetadata::builder() .tx_id(Some(tx_id)) .timestamp(message.timestamp) - .from_address(Some( - String::from_utf8(approved_message.source_address.to_vec()) - .expect("source address is not a valid string"), - )) + .from_address(Some(approved_message.source_address.clone())) .finalized(Some(true)) .extra( MessageApprovedEventMetadata::builder() @@ -326,18 +226,9 @@ fn map_gateway_event_to_amplifier_event( .message( GatewayV2Message::builder() .message_id(message_id) - .source_chain( - String::from_utf8(approved_message.source_chain.to_vec()) - .expect("invalid source chain"), - ) - .source_address( - String::from_utf8(approved_message.source_address.to_vec()) - .expect("invalid source address"), - ) - .destination_address( - Pubkey::new_from_array(approved_message.destination_address) - .to_string(), - ) + .source_chain(approved_message.cc_id_chain) + .source_address(approved_message.source_address) + .destination_address(approved_message.destination_address.to_string()) .payload_hash(approved_message.payload_hash.to_vec()) .build(), ) @@ -348,182 +239,18 @@ fn map_gateway_event_to_amplifier_event( ) .build(), ); - tracing::info!(message_id = ?approved_message.message_id, "Message approved"); + tracing::info!("message approved"); Some(amplifier_event) } - MessageExecuted(ref _executed_message) => { + GatewayEvent::MessageExecuted(ref _executed_message) => { tracing::warn!( "current gateway event does not produce enough artifacts to relay this message" ); None } - OperatorshipTransferred(ref new_operatorship) => { + GatewayEvent::OperatorshipTransferred(ref new_operatorship) => { tracing::info!(?new_operatorship, "Operatorship transferred"); None } } } - -#[cfg(test)] -mod tests { - use gmp_gateway::events::CallContract; - use pretty_assertions::assert_eq; - use test_log::test; - - use super::*; - - static GATEWAY_EXAMPLE_ID: &str = "gtwEpzTprUX7TJLx1hFXNeqCXJMsoxYQhQaEbnuDcj1"; - - // Include the test_call_data function - fn fixture_call_data() -> (String, EventContainer) { - use base64::prelude::*; - // Simple `CallContract` fixture - let event = gmp_gateway::events::GatewayEvent::CallContract(CallContract { - sender: Pubkey::new_unique().to_bytes(), - destination_chain: "ethereum".to_owned(), - destination_address: "0x9e3e785dD9EA3826C9cBaFb1114868bc0e79539a".to_owned(), - payload: vec![42, 42], - payload_hash: Pubkey::new_unique().to_bytes(), - }); - let event = event.encode(); - let event_container = EventContainer::new(event.to_vec()).unwrap(); - let base64_data = BASE64_STANDARD.encode(&event); - (base64_data, event_container) - } - - fn fixture_match_context() -> MatchContext { - MatchContext::new(GATEWAY_EXAMPLE_ID) - } - - #[test] - fn test_simple_event() { - // Use the test_call_data fixture - let (base64_data, event) = fixture_call_data(); - - // Sample logs with multiple gateway calls, some succeed and some fail - let logs = vec![ - format!("Program {GATEWAY_EXAMPLE_ID} invoke [1]"), // Invocation 1 starts - "Program log: Instruction: Call Contract".to_owned(), - format!("Program data: {}", base64_data), - format!("Program {GATEWAY_EXAMPLE_ID} success"), // Invocation 1 succeeds - ]; - - let result = build_program_event_stack(&fixture_match_context(), &logs); - - // Expected result: two successful invocations with their events, one failed invocation - let expected = vec![ProgramInvocationState::Succeeded(vec![(2, event)])]; - - assert_eq!(result, expected); - } - - #[test] - fn test_multiple_gateway_calls_some_succeed_some_fail() { - // Use the test_call_data fixture - let (base64_data, event) = fixture_call_data(); - - // Sample logs with multiple gateway calls, some succeed and some fail - let logs = vec![ - format!("Program {GATEWAY_EXAMPLE_ID} invoke [1]"), // Invocation 1 starts - "Program log: Instruction: Call Contract".to_owned(), - format!("Program data: {}", base64_data), - format!("Program {GATEWAY_EXAMPLE_ID} success"), // Invocation 1 succeeds - format!("Program {GATEWAY_EXAMPLE_ID} invoke [2]"), // Invocation 2 starts - "Program log: Instruction: Call Contract".to_owned(), - format!("Program data: {}", base64_data), - format!("Program {GATEWAY_EXAMPLE_ID} failed"), // Invocation 2 fails - format!("Program {GATEWAY_EXAMPLE_ID} invoke [3]"), // Invocation 3 starts - "Program log: Instruction: Call Contract".to_owned(), - format!("Program data: {}", base64_data), - format!("Program {GATEWAY_EXAMPLE_ID} success"), // Invocation 3 succeeds - ]; - - let result = build_program_event_stack(&fixture_match_context(), &logs); - - // Expected result: two successful invocations with their events, one failed invocation - let expected = vec![ - ProgramInvocationState::Succeeded(vec![(2, event.clone())]), - ProgramInvocationState::Failed, - ProgramInvocationState::Succeeded(vec![(10, event)]), - ]; - - assert_eq!(result, expected); - } - - #[test] - fn test_no_gateway_calls() { - // Logs with no gateway calls - let logs = vec![ - "Program some_other_program invoke [1]".to_owned(), - "Program log: Instruction: Do something".to_owned(), - "Program some_other_program success".to_owned(), - ]; - - let result = build_program_event_stack(&fixture_match_context(), &logs); - - // Expected result: empty stack - let expected: Vec = Vec::new(); - - assert_eq!(result, expected); - } - - #[test] - fn test_gateway_call_with_no_events() { - // Gateway call that succeeds but has no events - let logs = vec![ - format!("Program {GATEWAY_EXAMPLE_ID} invoke [1]"), - "Program log: Instruction: Do something".to_owned(), - format!("Program {GATEWAY_EXAMPLE_ID} success"), - ]; - - let result = build_program_event_stack(&fixture_match_context(), &logs); - - // Expected result: one successful invocation with no events - let expected = vec![ProgramInvocationState::Succeeded(vec![])]; - - assert_eq!(result, expected); - } - - #[test] - fn test_gateway_call_failure_with_events() { - // Use the test_call_data fixture - let (base64_data, _event) = fixture_call_data(); - - // Gateway call that fails but has events (events should be discarded) - let logs = vec![ - format!("Program {GATEWAY_EXAMPLE_ID} invoke [1]"), - format!("Program data: {}", base64_data), - format!("Program {GATEWAY_EXAMPLE_ID} failed"), - ]; - - let result = build_program_event_stack(&fixture_match_context(), &logs); - - // Expected result: one failed invocation - let expected = vec![ProgramInvocationState::Failed]; - - assert_eq!(result, expected); - } - - #[test] - fn test_real_life_data_set() { - let logs = vec![ - "Program meme9s3tVXUYLLmPomrk36sEDodjKu4zjUuKn12tSic invoke [1] ", - "Program log: Instruction: Native ", - "Program log: Instruction: SendToGateway ", - "Program gtwEpzTprUX7TJLx1hFXNeqCXJMsoxYQhQaEbnuDcj1 invoke [2] ", - "Program log: Instruction: Call Contract ", - "Program data: YXZhbGFuY2hlLWZ1amkweDQzNjZhMDQxYkE0MjM3RjliNzU1M0I4YTczZThBRjFmMmVlMUY0ZDFoZWxsbwAAAAAAAAABGmAGtWFiOdXkE8Fe9cROo6h2dsYneWtnOVWA1xsoSByK/5UGhcLtS8MXTzRyKHtW2VF7nJSBJzGaCaejberIDgAAAHz///8qAAAAgv///6T///8FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Program gtwEpzTprUX7TJLx1hFXNeqCXJMsoxYQhQaEbnuDcj1 consumed 4737 of 196074 compute units ", - "Program gtwEpzTprUX7TJLx1hFXNeqCXJMsoxYQhQaEbnuDcj1 success ", - "Program meme9s3tVXUYLLmPomrk36sEDodjKu4zjUuKn12tSic consumed 8781 of 200000 compute units ", - "Program meme9s3tVXUYLLmPomrk36sEDodjKu4zjUuKn12tSic success ", - ]; - let ctx = MatchContext::new("gtwEpzTprUX7TJLx1hFXNeqCXJMsoxYQhQaEbnuDcj1"); - let mut result = build_program_event_stack(&ctx, &logs); - assert_eq!(result.len(), 1); - let state = result.pop().unwrap(); - let ProgramInvocationState::Succeeded(item) = state else { - panic!("state is not of `succeeded` version"); - }; - assert_eq!(item.len(), 1); - } -} diff --git a/crates/solana-gateway-task-processor/Cargo.toml b/crates/solana-gateway-task-processor/Cargo.toml index 5484c40..3c4445c 100644 --- a/crates/solana-gateway-task-processor/Cargo.toml +++ b/crates/solana-gateway-task-processor/Cargo.toml @@ -13,8 +13,10 @@ solana-sdk.workspace = true typed-builder.workspace = true solana-client.workspace = true serde.workspace = true -gmp-gateway.workspace = true -axelar-rkyv-encoding.workspace = true +axelar-solana-gateway.workspace = true +axelar-solana-its.workspace = true +axelar-solana-governance.workspace = true +axelar-solana-encoding.workspace = true tracing.workspace = true futures.workspace = true common-serde-utils = { workspace = true } diff --git a/crates/solana-gateway-task-processor/src/component.rs b/crates/solana-gateway-task-processor/src/component.rs index f267354..9a3618d 100644 --- a/crates/solana-gateway-task-processor/src/component.rs +++ b/crates/solana-gateway-task-processor/src/component.rs @@ -5,19 +5,21 @@ use std::collections::VecDeque; use std::sync::Arc; use amplifier_api::types::TaskItem; -use axelar_rkyv_encoding::types::{HasheableMessageVec, VerifierSet}; +use axelar_executable::AxelarMessagePayload; +use axelar_solana_encoding::borsh::BorshDeserialize as _; +use axelar_solana_encoding::types::execute_data::{ExecuteData, MerkleisedPayload}; +use axelar_solana_encoding::types::messages::{CrossChainId, Message}; +use axelar_solana_gateway::error::GatewayError; +use axelar_solana_gateway::state::incoming_message::command_id; use effective_tx_sender::ComputeBudgetError; +use eyre::Context as _; use futures::stream::{FusedStream as _, FuturesOrdered, FuturesUnordered}; use futures::StreamExt as _; -use gmp_gateway::commands::OwnedCommand; -use gmp_gateway::state::GatewayApprovedCommand; -use gmp_gateway::{hasher_impl, instructions}; use num_traits::FromPrimitive as _; use relayer_amplifier_state::State; use solana_client::nonblocking::rpc_client::RpcClient; use solana_client::rpc_response::RpcSimulateTransactionResult; use solana_sdk::instruction::{Instruction, InstructionError}; -use solana_sdk::program_pack::Pack as _; use solana_sdk::pubkey::Pubkey; use solana_sdk::signature::{Keypair, Signature}; use solana_sdk::signer::Signer as _; @@ -64,7 +66,7 @@ impl SolanaTxPusher { } async fn process_internal(self) -> eyre::Result<()> { - let config_metadata = self.get_config_metadata().await.map(Arc::new)?; + let config_metadata = Arc::new(self.get_config_metadata()); let state = self.state.clone(); let keypair = Arc::new(self.config.signing_keypair.insecure_clone()); @@ -120,23 +122,18 @@ impl SolanaTxPusher { eyre::bail!("fatal error") } - async fn get_config_metadata(&self) -> Result { - let gateway_root_pda = gmp_gateway::get_gateway_root_config_pda().0; - let data = self.rpc_client.get_account_data(&gateway_root_pda).await?; - let root_config = gmp_gateway::state::GatewayConfig::unpack_from_slice(&data)?; - let config_metadata = ConfigMetadata { + fn get_config_metadata(&self) -> ConfigMetadata { + let gateway_root_pda = axelar_solana_gateway::get_gateway_root_config_pda().0; + ConfigMetadata { gateway_root_pda, - domain_separator: root_config.domain_separator, name_of_the_solana_chain: self.name_on_amplifier.clone(), - }; - Ok(config_metadata) + } } } struct ConfigMetadata { name_of_the_solana_chain: String, gateway_root_pda: Pubkey, - domain_separator: [u8; 32], } #[instrument(skip_all)] @@ -147,511 +144,225 @@ async fn process_task( metadata: &ConfigMetadata, ) -> eyre::Result<()> { use amplifier_api::types::Task::{Execute, GatewayTx, Refund, Verify}; - use axelar_rkyv_encoding::types::Payload::{Messages, VerifierSet}; let signer = keypair.pubkey(); - let gateway_root_pda = gmp_gateway::get_gateway_root_config_pda().0; + let gateway_root_pda = metadata.gateway_root_pda; - #[expect( - clippy::todo, - reason = "fine for the time being, will be refactored later" - )] - #[expect( - clippy::unreachable, - reason = "will be removed in the future, only there because of outdated gateway API" - )] match task.task { - Verify(_verify_task) => todo!(), - GatewayTx(gateway_transaction_task) => { - let execute_data_bytes = gateway_transaction_task.execute_data.as_ref(); - - let decoded_execute_data = - axelar_rkyv_encoding::types::ExecuteData::from_bytes(execute_data_bytes) - .map_err(|_err| eyre::eyre!("cannot decode execute data"))?; - let signing_verifier_set = decoded_execute_data.proof.verifier_set(); - let (signing_verifier_set_pda, _) = gmp_gateway::get_verifier_set_tracker_pda( - &gmp_gateway::id(), - signing_verifier_set.hash(hasher_impl()), - ); - - match decoded_execute_data.payload { - Messages(messages) => { - ProcessMessages::builder() - .messages(messages) - .signer(signer) - .gateway_root_pda(gateway_root_pda) - .metadata(metadata) - .execute_data_bytes(execute_data_bytes) - .signing_verifier_set_pda(signing_verifier_set_pda) - .solana_rpc_client(solana_rpc_client) - .keypair(keypair) - .build() - .execute() - .await?; - } - VerifierSet(new_verifier_set) => { - ProcessVerifierSet::builder() - .new_verifier_set(new_verifier_set) - .signer(signer) - .gateway_root_pda(gateway_root_pda) - .metadata(metadata) - .execute_data_bytes(execute_data_bytes) - .signing_verifier_set_pda(signing_verifier_set_pda) - .solana_rpc_client(solana_rpc_client) - .keypair(keypair) - .build() - .execute() - .await?; - } - } + Verify(_verify_task) => { + tracing::warn!("solana blockchain is not supposed to receive the `verify_task`"); + } + GatewayTx(task) => { + gateway_tx_task(task, gateway_root_pda, signer, solana_rpc_client, keypair).await?; } - Execute(execute_task) => { + Execute(task) => { // communicate with the destination program - async { - let payload = execute_task.payload; - let message = axelar_rkyv_encoding::types::Message::new( - axelar_rkyv_encoding::types::CrossChainId::new( - execute_task.message.source_chain, - execute_task.message.message_id.0, - ), - execute_task.message.source_address, - metadata.name_of_the_solana_chain.clone(), - execute_task.message.destination_address, - execute_task - .message - .payload_hash - .try_into() - .unwrap_or_default(), - ); - - // this interface will be refactored in the next gateway version - let command = OwnedCommand::ApproveMessage(message); - let (gateway_approved_message_pda, _, _) = - GatewayApprovedCommand::pda(&gateway_root_pda, &command); - let OwnedCommand::ApproveMessage(message) = command else { - unreachable!() - }; - tracing::debug!(?gateway_approved_message_pda, "approved message PDA"); - - let ix = axelar_executable::construct_axelar_executable_ix( - message, - payload, - gateway_approved_message_pda, - gateway_root_pda, - )?; - let send_transaction_result = - send_transaction(solana_rpc_client, keypair, ix).await; - - let Err(err) = send_transaction_result else { - // tx was successfully executed - return Ok(()) - }; - - // tx was not executed -- inspect root cause - let ComputeBudgetError::SimulationError(ref simulation) = err else { - // some kid of irrecoverable error - return Err(eyre::Error::from(err)) - }; - tracing::warn!(?simulation.err,"simulation err"); - - // NOTE: this error makes it look like the command is not approved, but in fact it's - // the error that is returned if a message was approved & executed. - // This will be altered in the future Gateway impl - let command_already_executed_error = simulation - .err - .as_ref() - .and_then(|err| { - if let TransactionError::InstructionError( - 1, // <-- 0th idx is the ComputeBudget prefix - InstructionError::Custom(err_code), - ) = *err - { - return gmp_gateway::error::GatewayError::from_u32(err_code) - } - None - }) - .is_some_and(|received_err| { - gmp_gateway::error::GatewayError::GatewayCommandNotApproved == received_err - }); - if command_already_executed_error { - tracing::warn!("message already executed"); - return eyre::Result::Ok(()); - } - - // Return the simulation error - Err(eyre::Error::from(err)) - } - .instrument(info_span!("execute task")) - .in_current_span() - .await?; + execute_task(task, metadata, signer, solana_rpc_client, keypair) + .instrument(info_span!("execute task")) + .in_current_span() + .await?; + } + Refund(_refund_task) => { + tracing::error!("refund task not implemented"); } - Refund(_refund_task) => todo!(), }; Ok(()) } -#[derive(typed_builder::TypedBuilder)] -struct ProcessMessages<'a> { - messages: HasheableMessageVec, +async fn execute_task( + execute_task: amplifier_api::types::ExecuteTask, + metadata: &ConfigMetadata, signer: Pubkey, - gateway_root_pda: Pubkey, - metadata: &'a ConfigMetadata, - execute_data_bytes: &'a [u8], - signing_verifier_set_pda: Pubkey, - solana_rpc_client: &'a RpcClient, - keypair: &'a Keypair, -} - -impl<'a> ProcessMessages<'a> { - #[tracing::instrument(skip_all, name = "approve messages flow")] - async fn execute(&self) -> eyre::Result<()> { - let execute_data_pda = InitializeApproveMessagesExecuteData::builder() - .signer(self.signer) - .gateway_root_pda(self.gateway_root_pda) - .domain_separator(&self.metadata.domain_separator) - .execute_data_bytes(self.execute_data_bytes) - .solana_rpc_client(self.solana_rpc_client) - .keypair(self.keypair) - .build() - .execute() - .instrument(info_span!("init execute data")) - .in_current_span() - .await?; - - // Compose messages - let mut future_set = self - .messages - .iter() - .filter_map(|message| { - let command = OwnedCommand::ApproveMessage(message.clone()); - let (approved_message_pda, _bump, _seed) = - GatewayApprovedCommand::pda(&self.metadata.gateway_root_pda, &command); - let ix = instructions::initialize_pending_command( - &self.metadata.gateway_root_pda, - &self.signer, - command, - ) - .ok()?; - - let output = async move { - let send_transaction_result = - send_transaction(self.solana_rpc_client, self.keypair, ix).await; - - let Err(err) = send_transaction_result else { - // tx was successfully executed - return Ok(approved_message_pda) - }; - - // tx was not executed -- inspect root cause - let ComputeBudgetError::SimulationError(ref simulation) = err else { - // some kid of irrecoverable error - return Err(eyre::Error::from(err)) - }; - - // this is the error for when a message PDA was already registered - if matches!( - simulation.err, - Some(TransactionError::InstructionError( - 1, // <-- 0th idx is the ComputeBudget prefix - InstructionError::InvalidAccountData - )) - ) { - return eyre::Result::Ok(approved_message_pda); - } - - // Return the simulation error - Err(eyre::Error::from(err)) + solana_rpc_client: &RpcClient, + keypair: &Keypair, +) -> Result<(), eyre::Error> { + let payload = execute_task.payload; + + // compose the message + let message = Message { + cc_id: CrossChainId { + chain: execute_task.message.source_chain, + id: execute_task.message.message_id.0, + }, + source_address: execute_task.message.source_address, + destination_chain: metadata.name_of_the_solana_chain.clone(), + destination_address: execute_task.message.destination_address, + payload_hash: execute_task + .message + .payload_hash + .try_into() + .unwrap_or_default(), + }; + let command_id = command_id(&message.cc_id.chain, &message.cc_id.id); + let (gateway_incoming_message_pda, ..) = + axelar_solana_gateway::get_incoming_message_pda(&command_id); + + // For compatibility reasons with the rest of the Axelar protocol we need add custom handling + // for ITS & Governance programs + let destination_address = message.destination_address.parse::()?; + match destination_address { + axelar_solana_its::ID => { + // todo ITS specific handling + tracing::error!("ITS program not yet supported"); + } + axelar_solana_governance::ID => { + // todo Governance specific handling + tracing::error!("governance program not yet supported"); + } + _ => { + // this is a security check, because the relayer is a signer, we don't want to + // sign a tx where a malicious destination contract could drain the account. This is + // because the `AxelarMessagePayload` defines an interface where the accounts get + // dynamically appended, thus it could also include the relayers account. + if let Ok(decoded_payload) = AxelarMessagePayload::decode(&payload) { + let relayer_signer_acc_included = decoded_payload + .account_meta() + .iter() + .any(|acc| acc.pubkey == signer); + if relayer_signer_acc_included { + eyre::bail!( + "relayer will not execute a transaction where its own key is included" + ); } - .instrument(tracing::info_span!( - "registering command PDA", - ?approved_message_pda - )) - .in_current_span(); - - Some(output) - }) - .collect::>(); + } - let mut command_accounts = Vec::new(); - while let Some(result) = future_set.next().await { - let pubkey = result?; - command_accounts.push(pubkey); + // if security passed, we broadcast the tx + let ix = axelar_executable::construct_axelar_executable_ix( + message, + &payload, + gateway_incoming_message_pda, + )?; + send_tx_parse_error(solana_rpc_client, keypair, ix).await?; } - - ApproveMessages::builder() - .execute_data_pda(execute_data_pda) - .gateway_root_pda(&self.metadata.gateway_root_pda) - .command_accounts(&command_accounts) - .signing_verifier_set_pda(self.signing_verifier_set_pda) - .solana_rpc_client(self.solana_rpc_client) - .keypair(self.keypair) - .build() - .execute() - .instrument(info_span!("verify signatures")) - .await?; - - Ok(()) } + Ok(()) } -#[derive(typed_builder::TypedBuilder)] -struct ProcessVerifierSet<'a> { - new_verifier_set: VerifierSet, - signer: Pubkey, +async fn gateway_tx_task( + gateway_transaction_task: amplifier_api::types::GatewayTransactionTask, gateway_root_pda: Pubkey, - metadata: &'a ConfigMetadata, - execute_data_bytes: &'a [u8], - signing_verifier_set_pda: Pubkey, - solana_rpc_client: &'a RpcClient, - keypair: &'a Keypair, -} - -impl<'a> ProcessVerifierSet<'a> { - #[instrument(skip_all)] - pub async fn execute(&self) -> eyre::Result<()> { - let execute_data_pda = InitializeRotateSignersExecuteData::builder() - .signer(self.signer) - .gateway_root_pda(self.gateway_root_pda) - .domain_separator(&self.metadata.domain_separator) - .execute_data_bytes(self.execute_data_bytes) - .solana_rpc_client(self.solana_rpc_client) - .keypair(self.keypair) - .build() - .execute() - .await?; - - let new_signing_verifier_set_pda = - get_new_signing_verifier_set_pda(&self.new_verifier_set)?; - - RotateSigners::builder() - .execute_data_pda(execute_data_pda) - .gateway_root_pda(&self.metadata.gateway_root_pda) - .signing_verifier_set_pda(self.signing_verifier_set_pda) - .new_signing_verifier_set_pda(new_signing_verifier_set_pda) - .signer(self.signer) - .solana_rpc_client(self.solana_rpc_client) - .keypair(self.keypair) - .build() - .execute() - .await?; - - Ok(()) - } -} - -#[derive(typed_builder::TypedBuilder)] -struct LogFinder<'a> { - simulation: &'a RpcSimulateTransactionResult, - log_to_search: &'a str, -} - -impl<'a> LogFinder<'a> { - const fn new(simulation: &'a RpcSimulateTransactionResult, log_to_search: &'a str) -> Self { - Self { - simulation, - log_to_search, - } - } - - #[instrument(skip_all)] - pub fn find(&self) -> bool { - self.simulation - .logs - .as_ref() - .is_some_and(|logs| logs.iter().any(|log| log.starts_with(self.log_to_search))) - } -} - -#[derive(typed_builder::TypedBuilder)] -struct InitializeApproveMessagesExecuteData<'a> { signer: Pubkey, - gateway_root_pda: Pubkey, - domain_separator: &'a [u8; 32], - execute_data_bytes: &'a [u8], - solana_rpc_client: &'a RpcClient, - keypair: &'a Keypair, -} - -impl<'a> InitializeApproveMessagesExecuteData<'a> { - #[instrument(skip_all)] - pub async fn execute(&self) -> eyre::Result { - let (ix, execute_data) = instructions::initialize_approve_messages_execute_data( - self.signer, - self.gateway_root_pda, - self.domain_separator, - self.execute_data_bytes, - )?; - let (execute_data_pda, ..) = gmp_gateway::get_execute_data_pda( - &self.gateway_root_pda, - &execute_data.hash_decoded_contents(), + solana_rpc_client: &RpcClient, + keypair: &Keypair, +) -> Result<(), eyre::Error> { + // parse the ExecuteData + let execute_data_bytes = gateway_transaction_task.execute_data.as_slice(); + let execute_data = ExecuteData::try_from_slice(execute_data_bytes) + .map_err(|_err| eyre::eyre!("cannot decode execute data"))?; + + // Start a signing session + let (verification_session_tracker_pda, ..) = + axelar_solana_gateway::get_signature_verification_pda( + &gateway_root_pda, + &execute_data.payload_merkle_root, ); - - let send_transaction_result = - send_transaction(self.solana_rpc_client, self.keypair, ix).await; - - let Err(err) = send_transaction_result else { - // tx was successfully executed - return Ok(execute_data_pda) - }; - - // tx was not executed -- inspect root cause - let ComputeBudgetError::SimulationError(ref simulation) = err else { - // some kid of irrecoverable error - return Err(eyre::Error::from(err)) - }; - - // This happens if the PDA was already initialised - if LogFinder::new( - simulation, - "Program log: Execute Datat PDA already initialized", - ) - .find() - { - // Acceptable simulation error; proceed as successful - return Ok(execute_data_pda) - } - - // Return the simulation error - Err(eyre::Error::from(err)) + let ix = axelar_solana_gateway::instructions::initialize_payload_verification_session( + signer, + gateway_root_pda, + execute_data.payload_merkle_root, + )?; + send_tx_parse_error(solana_rpc_client, keypair, ix).await?; + + // verify each signature in the signing session + let mut verifier_ver_future_set = execute_data + .signing_verifier_set_leaves + .into_iter() + .filter_map(|verifier_info| { + let ix = axelar_solana_gateway::instructions::verify_signature( + gateway_root_pda, + verification_session_tracker_pda, + execute_data.payload_merkle_root, + verifier_info, + ) + .ok()?; + Some(send_tx_parse_error(solana_rpc_client, keypair, ix)) + }) + .collect::>(); + while let Some(result) = verifier_ver_future_set.next().await { + result?; } -} - -#[derive(typed_builder::TypedBuilder)] -struct InitializeRotateSignersExecuteData<'a> { - signer: Pubkey, - gateway_root_pda: Pubkey, - domain_separator: &'a [u8; 32], - execute_data_bytes: &'a [u8], - solana_rpc_client: &'a RpcClient, - keypair: &'a Keypair, -} -impl<'a> InitializeRotateSignersExecuteData<'a> { - #[instrument(skip_all)] - pub async fn execute(&self) -> eyre::Result { - let (ix, execute_data) = instructions::initialize_rotate_signers_execute_data( - self.signer, - self.gateway_root_pda, - self.domain_separator, - self.execute_data_bytes, - )?; - let (execute_data_pda, ..) = gmp_gateway::get_execute_data_pda( - &self.gateway_root_pda, - &execute_data.hash_decoded_contents(), - ); - tracing::info!(?execute_data_pda, "execute data PDA"); - - let send_transaction_result = - send_transaction(self.solana_rpc_client, self.keypair, ix).await; - - let Err(err) = send_transaction_result else { - // tx was successfully executed - return Ok(execute_data_pda) - }; - - // tx was not executed -- inspect root cause - let ComputeBudgetError::SimulationError(ref simulation) = err else { - // some kid of irrecoverable error - return Err(eyre::Error::from(err)) - }; - - // This happens if the PDA was already initialised - if LogFinder::new( - simulation, - "Program log: Execute Datat PDA already initialized", - ) - .find() - { - // Acceptable simulation error; proceed as successful - return Ok(execute_data_pda) + // determine whether we should do signer rotation or message approval + match execute_data.payload_items { + MerkleisedPayload::VerifierSetRotation { + new_verifier_set_merkle_root, + } => { + let (new_verifier_set_tracker_pda, _) = + axelar_solana_gateway::get_verifier_set_tracker_pda(new_verifier_set_merkle_root); + let ix = axelar_solana_gateway::instructions::rotate_signers( + gateway_root_pda, + verification_session_tracker_pda, + verification_session_tracker_pda, + new_verifier_set_tracker_pda, + signer, + None, + new_verifier_set_merkle_root, + )?; + send_tx_parse_error(solana_rpc_client, keypair, ix).await?; } - - // Return the simulation error - Err(eyre::Error::from(err)) - } -} - -#[derive(typed_builder::TypedBuilder)] -struct ApproveMessages<'a> { - execute_data_pda: Pubkey, - gateway_root_pda: &'a Pubkey, - command_accounts: &'a [Pubkey], - signing_verifier_set_pda: Pubkey, - solana_rpc_client: &'a RpcClient, - keypair: &'a Keypair, -} - -impl<'a> ApproveMessages<'a> { - #[instrument(skip_all)] - pub async fn execute(&self) -> eyre::Result<()> { - let ix = instructions::approve_messages( - self.execute_data_pda, - *self.gateway_root_pda, - self.command_accounts, - self.signing_verifier_set_pda, - )?; - - let send_transaction_result = - send_transaction(self.solana_rpc_client, self.keypair, ix).await; - - let Err(err) = send_transaction_result else { - // tx was successfully executed - return Ok(()) - }; - - // tx was not executed -- inspect root cause - let ComputeBudgetError::SimulationError(ref simulation) = err else { - // some kid of irrecoverable error - return Err(eyre::Error::from(err)) - }; - - // This can happen if the verifier set is too old - if LogFinder::new(simulation, "Program log: Proof validation failed").find() { - // Acceptable simulation error; proceed as successful - return Ok(()) + MerkleisedPayload::NewMessages { messages } => { + let mut merkelised_message_f_set = messages + .into_iter() + .filter_map(|merkelised_message| { + let command_id = command_id( + merkelised_message.leaf.message.cc_id.chain.as_str(), + merkelised_message.leaf.message.cc_id.id.as_str(), + ); + let (pda, _bump) = axelar_solana_gateway::get_incoming_message_pda(&command_id); + let ix = axelar_solana_gateway::instructions::approve_messages( + merkelised_message, + execute_data.payload_merkle_root, + gateway_root_pda, + signer, + verification_session_tracker_pda, + pda, + ) + .ok()?; + Some(send_tx_parse_error(solana_rpc_client, keypair, ix)) + }) + .collect::>(); + while let Some(result) = merkelised_message_f_set.next().await { + result?; + } } - - // Return the simulation error - Err(eyre::Error::from(err)) - } + }; + Ok(()) } -#[derive(typed_builder::TypedBuilder)] -struct RotateSigners<'a> { - execute_data_pda: Pubkey, - gateway_root_pda: &'a Pubkey, - signing_verifier_set_pda: Pubkey, - new_signing_verifier_set_pda: Pubkey, - signer: Pubkey, - solana_rpc_client: &'a RpcClient, - keypair: &'a Keypair, -} +async fn send_tx_parse_error( + solana_rpc_client: &RpcClient, + keypair: &Keypair, + ix: Instruction, +) -> eyre::Result<()> { + let res = send_transaction(solana_rpc_client, keypair, ix).await; + + match res { + Ok(_) => Ok(()), + Err(err) => { + let should_continue = if let ComputeBudgetError::SimulationError( + RpcSimulateTransactionResult { + err: + Some(TransactionError::InstructionError(_, InstructionError::Custom(err_code))), + .. + }, + ) = err + { + GatewayError::from_u32(err_code) + .is_some_and(|gw_err| gw_err.should_relayer_proceed()) + } else { + false + }; -impl<'a> RotateSigners<'a> { - #[instrument(skip_all)] - pub async fn execute(&self) -> eyre::Result<()> { - let ix = instructions::rotate_signers( - self.execute_data_pda, - *self.gateway_root_pda, - None, - self.signing_verifier_set_pda, - self.new_signing_verifier_set_pda, - self.signer, - )?; - send_transaction(self.solana_rpc_client, self.keypair, ix).await?; - Ok(()) + if should_continue { + Ok(()) + } else { + tracing::warn!(?err, "Simulation error"); + Err(err).wrap_err("irrecoverable error") + } + } } } -#[instrument(skip_all)] -fn get_new_signing_verifier_set_pda(new_verifier_set: &VerifierSet) -> eyre::Result { - let (new_signing_verifier_set_pda, _) = gmp_gateway::get_verifier_set_tracker_pda( - &gmp_gateway::id(), - new_verifier_set.hash(hasher_impl()), - ); - Ok(new_signing_verifier_set_pda) -} - #[instrument(skip_all)] async fn send_transaction( solana_rpc_client: &RpcClient, diff --git a/crates/solana-gateway-task-processor/src/config.rs b/crates/solana-gateway-task-processor/src/config.rs index cc173f8..d42f43b 100644 --- a/crates/solana-gateway-task-processor/src/config.rs +++ b/crates/solana-gateway-task-processor/src/config.rs @@ -22,7 +22,7 @@ pub(crate) mod config_defaults { use solana_sdk::pubkey::Pubkey; pub(crate) const fn gateway_program_address() -> Pubkey { - gmp_gateway::id() + axelar_solana_gateway::id() } } diff --git a/crates/solana-listener/Cargo.toml b/crates/solana-listener/Cargo.toml index dba891d..ced0dcf 100644 --- a/crates/solana-listener/Cargo.toml +++ b/crates/solana-listener/Cargo.toml @@ -17,11 +17,9 @@ url.workspace = true serde.workspace = true relayer-engine.workspace = true chrono.workspace = true - -gmp-gateway.workspace = true -common-serde-utils = { workspace = true } -core-common-serde-utils = { workspace = true } - +axelar-solana-gateway.workspace = true +common-serde-utils.workspace = true +core-common-serde-utils.workspace = true solana-client.workspace = true solana-sdk.workspace = true solana-transaction-status.workspace = true diff --git a/crates/solana-listener/src/config.rs b/crates/solana-listener/src/config.rs index a3e723d..5037aa3 100644 --- a/crates/solana-listener/src/config.rs +++ b/crates/solana-listener/src/config.rs @@ -62,7 +62,7 @@ pub(crate) mod config_defaults { } pub(crate) const fn gateway_program_address() -> Pubkey { - gmp_gateway::ID + axelar_solana_gateway::id() } } diff --git a/deny.toml b/deny.toml index e905e63..083b9f3 100644 --- a/deny.toml +++ b/deny.toml @@ -77,6 +77,8 @@ ignore = [ { id = "RUSTSEC-2024-0375", reason = "dependency of solana lib" }, { id = "RUSTSEC-2021-0145", reason = "dependency of solana lib" }, { id = "RUSTSEC-2021-0139", reason = "dependency of solana lib" }, + { id = "RUSTSEC-2024-0384", reason = "updating `instant` is not feasible" }, + { id = "RUSTSEC-2024-0388", reason = "updating `derivative` is not feasible" }, # { id = "RUSTSEC-2024-0344", reason = "ed25519-dalek: need to wait for solana to upgrade internally" }, # "a-crate-that-is-yanked@0.1.1", # you can also ignore yanked crate versions if you wish # { crate = "a-crate-that-is-yanked@0.1.1", reason = "you can specify why you are ignoring the yanked crate" }, @@ -97,7 +99,7 @@ ignore = [ allow = [ "MIT", "Apache-2.0", - "Unicode-DFS-2016", + "Unicode-3.0", "BSD-2-Clause", "BSD-3-Clause", "ISC", @@ -125,7 +127,11 @@ exceptions = [ # adding a clarification entry for it allows you to manually specify the # licensing information [[licenses.clarify]] -crate = "gmp-gateway" +crate = "axelar-solana-gateway" +expression = "MIT" +license-files = [] +[[licenses.clarify]] +crate = "axelar-solana-encoding" expression = "MIT" license-files = [] [[licenses.clarify]] @@ -133,6 +139,38 @@ crate = "axelar-rkyv-encoding" expression = "MIT" license-files = [] [[licenses.clarify]] +crate = "axelar-executable-old" +expression = "MIT" +license-files = [] +[[licenses.clarify]] +crate = "gmp-gateway" +expression = "MIT" +license-files = [] +[[licenses.clarify]] +crate = "governance-gmp" +expression = "MIT" +license-files = [] +[[licenses.clarify]] +crate = "role-management" +expression = "MIT" +license-files = [] +[[licenses.clarify]] +crate = "interchain-token-transfer-gmp" +expression = "MIT" +license-files = [] +[[licenses.clarify]] +crate = "axelar-solana-its" +expression = "MIT" +license-files = [] +[[licenses.clarify]] +crate = "axelar-solana-governance" +expression = "MIT" +license-files = [] +[[licenses.clarify]] +crate = "axelar-solana-its" +expression = "MIT" +license-files = [] +[[licenses.clarify]] crate = "program-utils" expression = "MIT" license-files = []