diff --git a/Cargo.lock b/Cargo.lock index b242543..82621aa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -56,9 +56,9 @@ dependencies = [ [[package]] name = "agave-feature-set" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a78af1c611c18d4a20e0983f033bdd74eaa8f44cee0d3c10ee66873f2630a636" +checksum = "1e631ba26aeffe98dee3db0b8612fc7c67cda71bc57b0f82f28dc48231df6bc8" dependencies = [ "ahash", "solana-epoch-schedule", @@ -70,9 +70,9 @@ dependencies = [ [[package]] name = "agave-reserved-account-keys" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da12e13d0ae9df8bbedeb505e659d590d938da0becc506f6901eec6aefd0fe9f" +checksum = "d062865aedfbdc7511726d47e472687db0db4fb08e3c3ab2ac68570106c2f1b6" dependencies = [ "agave-feature-set", "solana-pubkey 3.0.0", @@ -81,9 +81,9 @@ dependencies = [ [[package]] name = "agave-syscalls" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d69bff842579c8b392b3a1fa38394986926988bc5721393e19242baaa77836df" +checksum = "3c89f228e93d1bc769578efd0c5a445715ae04ad96f9b6f8d16d018ad7f9221a" dependencies = [ "bincode", "libsecp256k1", @@ -119,7 +119,7 @@ dependencies = [ "solana-sysvar", "solana-sysvar-id", "solana-transaction-context", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -176,9 +176,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.21" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" dependencies = [ "anstyle", "anstyle-parse", @@ -191,15 +191,15 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" [[package]] name = "anstyle-parse" -version = "0.2.7" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" dependencies = [ "utf8parse", ] @@ -226,9 +226,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.101" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "ark-bn254" @@ -347,7 +347,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -373,7 +373,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -448,7 +448,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -491,9 +491,9 @@ checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" [[package]] name = "async-compression" -version = "0.4.39" +version = "0.4.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68650b7df54f0293fd061972a0fb05aaf4fc0879d3b3d21a638a182c5c543b9f" +checksum = "d0f9ee0f6e02ffd7ad5816e9464499fba7b3effd01123b515c41d1697c43dad1" dependencies = [ "compression-codecs", "compression-core", @@ -509,7 +509,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -557,6 +557,7 @@ dependencies = [ "beethoven-core", "beethoven-deposit-jupiter", "beethoven-deposit-kamino", + "beethoven-deposit-marginfi", "beethoven-swap-aldrin", "beethoven-swap-aldrin-v2", "beethoven-swap-futarchy", @@ -575,7 +576,7 @@ dependencies = [ "serde_json", "solana-account", "solana-account-view", - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-clock", "solana-compute-budget-instruction", "solana-instruction", @@ -599,11 +600,11 @@ version = "0.0.1" dependencies = [ "solana-account", "solana-account-decoder-client-types", - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-instruction", "solana-rpc-client", "solana-rpc-client-api", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", ] @@ -621,7 +622,7 @@ version = "0.0.1" dependencies = [ "beethoven-core", "solana-account-view", - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-instruction-view", "solana-program-error", ] @@ -632,7 +633,18 @@ version = "0.0.1" dependencies = [ "beethoven-core", "solana-account-view", - "solana-address 2.0.0", + "solana-address 2.5.0", + "solana-instruction-view", + "solana-program-error", +] + +[[package]] +name = "beethoven-deposit-marginfi" +version = "0.0.1" +dependencies = [ + "beethoven-core", + "solana-account-view", + "solana-address 2.5.0", "solana-instruction-view", "solana-program-error", ] @@ -643,7 +655,7 @@ version = "0.0.1" dependencies = [ "beethoven-core", "solana-account-view", - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-instruction-view", "solana-program-error", ] @@ -654,7 +666,7 @@ version = "0.0.1" dependencies = [ "beethoven-core", "solana-account-view", - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-instruction-view", "solana-program-error", ] @@ -665,7 +677,7 @@ version = "0.0.1" dependencies = [ "beethoven-core", "solana-account-view", - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-instruction-view", "solana-program-error", ] @@ -676,7 +688,7 @@ version = "0.0.1" dependencies = [ "beethoven-core", "solana-account-view", - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-instruction-view", "solana-program-error", ] @@ -687,7 +699,7 @@ version = "0.0.1" dependencies = [ "beethoven-core", "solana-account-view", - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-instruction-view", "solana-program-error", ] @@ -698,7 +710,7 @@ version = "0.0.1" dependencies = [ "beethoven-core", "solana-account-view", - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-instruction-view", "solana-program-error", ] @@ -709,7 +721,7 @@ version = "0.0.1" dependencies = [ "beethoven-core", "solana-account-view", - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-instruction-view", "solana-program-error", ] @@ -720,7 +732,7 @@ version = "0.0.1" dependencies = [ "beethoven-core", "solana-account-view", - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-instruction-view", "solana-program-error", ] @@ -731,7 +743,7 @@ version = "0.0.1" dependencies = [ "beethoven-core", "solana-account-view", - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-instruction-view", "solana-program-error", ] @@ -742,7 +754,7 @@ version = "0.0.1" dependencies = [ "beethoven-core", "solana-account-view", - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-instruction-view", "solana-program-error", ] @@ -753,7 +765,7 @@ version = "0.0.1" dependencies = [ "beethoven-core", "solana-account-view", - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-instruction-view", "solana-program-error", ] @@ -764,7 +776,7 @@ version = "0.0.1" dependencies = [ "beethoven-core", "solana-account-view", - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-instruction-view", "solana-program-error", ] @@ -789,9 +801,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" [[package]] name = "blake3" @@ -828,25 +840,26 @@ dependencies = [ [[package]] name = "borsh" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1da5ab77c1437701eeff7c88d968729e7766172279eab0676857b3d63af7a6f" +checksum = "cfd1e3f8955a5d7de9fab72fc8373fade9fb8a703968cb200ae3dc6cf08e185a" dependencies = [ "borsh-derive", + "bytes", "cfg_aliases", ] [[package]] name = "borsh-derive" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0686c856aa6aac0c4498f936d7d6a02df690f614c03e4d906d1018062b5c5e2c" +checksum = "bfcfdc083699101d5a7965e49925975f2f55060f94f9a05e7187be95d530ca59" dependencies = [ "once_cell", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -881,9 +894,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.19.1" +version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" [[package]] name = "bv" @@ -897,9 +910,9 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.24.0" +version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" dependencies = [ "bytemuck_derive", ] @@ -912,7 +925,7 @@ checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -929,9 +942,9 @@ checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "cc" -version = "1.2.52" +version = "1.2.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd4932aefd12402b36c60956a4fe0035421f544799057659ff86f923657aada3" +checksum = "e1e928d4b69e3077709075a938a05ffbedfa53a84c8f766efbf8220bb1ff60e1" dependencies = [ "find-msvc-tools", "jobserver", @@ -959,7 +972,7 @@ checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -974,9 +987,9 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" [[package]] name = "combine" @@ -993,9 +1006,9 @@ dependencies = [ [[package]] name = "compression-codecs" -version = "0.4.36" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00828ba6fd27b45a448e57dbfe84f1029d4c9f26b368157e9a448a5f49a2ec2a" +checksum = "eb7b51a7d9c967fc26773061ba86150f19c50c0d65c887cb1fbe295fd16619b7" dependencies = [ "brotli", "compression-core", @@ -1011,13 +1024,12 @@ checksum = "75984efb6ed102a0d42db99afb6c1948f0380d1d91808d5529916e6c08b49d8d" [[package]] name = "console" -version = "0.16.2" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03e45a4a8926227e4197636ba97a9fc9b00477e9f4bd711395687c5f0734bec4" +checksum = "d64e8af5551369d19cf50138de61f1c42074ab970f74e99be916646777f8fc87" dependencies = [ "encode_unicode", "libc", - "once_cell", "unicode-width", "windows-sys 0.61.2", ] @@ -1116,7 +1128,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1125,8 +1137,18 @@ version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.21.3", + "darling_macro 0.21.3", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", ] [[package]] @@ -1140,7 +1162,20 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.114", + "syn 2.0.117", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.117", ] [[package]] @@ -1149,9 +1184,20 @@ version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ - "darling_core", + "darling_core 0.21.3", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1210,7 +1256,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1267,7 +1313,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1318,7 +1364,7 @@ checksum = "685adfa4d6f3d765a26bc5dbc936577de9abf756c1feeb3089b01dd395034842" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1338,14 +1384,14 @@ checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "env_filter" -version = "0.1.4" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bf3c259d255ca70051b30e2e95b5446cdb8949ac4cd22c0d7fd634d89f568e2" +checksum = "32e90c2accc4b07a8456ea0debdc2e7587bdd890680d71173a15d4ae604f6eef" dependencies = [ "log", "regex", @@ -1353,9 +1399,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.8" +version = "0.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" +checksum = "0621c04f2196ac3f488dd583365b9c09be011a4ab8b9f37248ffcc8f6198b56a" dependencies = [ "anstream", "anstyle", @@ -1404,9 +1450,9 @@ checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "find-msvc-tools" -version = "0.1.7" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f449e6c6c08c865631d4890cfacf252b3d396c9bcc83adb6623cdb02a8336c41" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" [[package]] name = "five8" @@ -1414,7 +1460,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75b8549488b4715defcb0d8a8a1c1c76a80661b5fa106b4ca0e7fce59d7d875" dependencies = [ - "five8_core", + "five8_core 0.1.2", ] [[package]] @@ -1423,7 +1469,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23f76610e969fa1784327ded240f1e28a3fd9520c9cec93b636fcf62dd37f772" dependencies = [ - "five8_core", + "five8_core 1.0.0", ] [[package]] @@ -1432,7 +1478,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a0f1728185f277989ca573a402716ae0beaaea3f76a8ff87ef9dd8fb19436c5" dependencies = [ - "five8_core", + "five8_core 1.0.0", ] [[package]] @@ -1441,6 +1487,12 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2551bf44bc5f776c15044b9b94153a00198be06743e262afaaa61f11ac7523a5" +[[package]] +name = "five8_core" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "059c31d7d36c43fe39d89e55711858b4da8be7eb6dabac23c7289b1a19489406" + [[package]] name = "flate2" version = "1.1.9" @@ -1522,7 +1574,7 @@ checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1898,15 +1950,15 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.11.0" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" [[package]] name = "iri-string" -version = "0.7.10" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" +checksum = "25e659a4bb38e810ebc252e53b5814ff908a8c58c2a9ce2fae1bbec24cbf4e20" dependencies = [ "memchr", "serde", @@ -1956,15 +2008,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jiff" -version = "0.2.18" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e67e8da4c49d6d9909fe03361f9b620f58898859f5c7aded68351e85e71ecf50" +checksum = "1a3546dc96b6d42c5f24902af9e2538e82e39ad350b0c766eb3fbf2d8f3d8359" dependencies = [ "jiff-static", "log", @@ -1975,13 +2027,13 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.18" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c84ee7f197eca9a86c6fd6cb771e55eb991632f15f2bc3ca6ec838929e6e78" +checksum = "2a8c8b344124222efd714b73bb41f8b5120b27a7cc1c75593a6ff768d9d05aa4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1996,10 +2048,12 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.83" +version = "0.3.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" +checksum = "cc4c90f45aa2e6eacbe8645f77fdea542ac97a494bcd117a67df9ff4d611f995" dependencies = [ + "cfg-if", + "futures-util", "once_cell", "wasm-bindgen", ] @@ -2035,9 +2089,9 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" dependencies = [ "cpufeatures", ] @@ -2050,9 +2104,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.180" +version = "0.2.183" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" +checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" [[package]] name = "libsecp256k1" @@ -2146,7 +2200,7 @@ dependencies = [ "log", "serde", "solana-account", - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-address-lookup-table-interface", "solana-bpf-loader-program", "solana-builtins", @@ -2157,7 +2211,7 @@ dependencies = [ "solana-epoch-schedule", "solana-fee", "solana-fee-structure", - "solana-hash 4.0.1", + "solana-hash 4.2.0", "solana-instruction", "solana-instructions-sysvar", "solana-keypair", @@ -2190,7 +2244,7 @@ dependencies = [ "solana-transaction", "solana-transaction-context", "solana-transaction-error", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -2216,9 +2270,9 @@ checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" [[package]] name = "memchr" -version = "2.7.6" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" [[package]] name = "merlin" @@ -2244,9 +2298,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" dependencies = [ "libc", "wasi 0.11.1+wasi-snapshot-preview1", @@ -2255,9 +2309,9 @@ dependencies = [ [[package]] name = "mollusk-svm" -version = "0.10.1" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f9abfd8c85069dc1220ab624242d9df1e2e9ad1b634a622bf25e42df41055cc" +checksum = "3cac6d1c886dc3f907f615e80b66de6400a45d5f8f13f99c0b1c962ef614a5b0" dependencies = [ "agave-feature-set", "agave-syscalls", @@ -2281,7 +2335,7 @@ dependencies = [ "solana-precompile-error", "solana-program-error", "solana-program-runtime", - "solana-pubkey 4.0.0", + "solana-pubkey 4.1.0", "solana-rent", "solana-sdk-ids", "solana-slot-hashes", @@ -2299,24 +2353,24 @@ dependencies = [ [[package]] name = "mollusk-svm-error" -version = "0.10.1" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "981619228aac860fdcdef32c07115e3e81e769ae5ad8c8661d59b576af09496c" +checksum = "8d23fa709c14bfe0d8266508eedc2138aa7e6417d6f860d88cdc5cfa5346b357" dependencies = [ - "solana-pubkey 4.0.0", + "solana-pubkey 4.1.0", "thiserror 1.0.69", ] [[package]] name = "mollusk-svm-programs-token" -version = "0.10.1" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a59d709b4134581e2652b0d511a0597ddb767e8f3fc0a57c3273fe92a4343f2c" +checksum = "adab73bb07b35d3c01e3175d34a9b0fcacb067484ce6f1ca53696ba916893d2d" dependencies = [ "mollusk-svm", "solana-account", "solana-program-pack", - "solana-pubkey 4.0.0", + "solana-pubkey 4.1.0", "solana-rent", "spl-associated-token-account-interface", "spl-token-interface", @@ -2324,14 +2378,14 @@ dependencies = [ [[package]] name = "mollusk-svm-result" -version = "0.10.1" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1b2a4e4a1b5a069f40c6f3599650839091e3438d4ba3aa905fa6b7999e00b10" +checksum = "088825f3c0c1f820eafd1f10efd3606c58a5edec4accdb68eb1d9ce357d2ecac" dependencies = [ "solana-account", "solana-instruction", "solana-program-error", - "solana-pubkey 4.0.0", + "solana-pubkey 4.1.0", "solana-rent", "solana-transaction-error", ] @@ -2389,7 +2443,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2435,9 +2489,9 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" dependencies = [ "num_enum_derive", "rustversion", @@ -2445,21 +2499,21 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "once_cell" -version = "1.21.3" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "once_cell_polyfill" @@ -2502,6 +2556,12 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "pastey" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b867cad97c0791bbd3aaa6472142568c6c9e8f71937e98379f584cfb0cf35bec" + [[package]] name = "pbkdf2" version = "0.11.0" @@ -2528,9 +2588,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pin-utils" @@ -2540,12 +2600,12 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pinocchio" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfad955b2fe8f736e1ea276ebb31820d778ee69c1161146054e9b31be2e73326" +checksum = "c06810dac15a4ef83d3dabdb4f2f22fb39c9adff669cd2781da4f716510a647c" dependencies = [ "solana-account-view", - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-define-syscall 4.0.1", "solana-instruction-view", "solana-program-error", @@ -2581,15 +2641,15 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.13.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950" +checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "portable-atomic-util" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +checksum = "091397be61a01d4be58e7841595bd4bfedb15f1cd54977d79b8271e94ed799a3" dependencies = [ "portable-atomic", ] @@ -2614,18 +2674,18 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ "toml_edit", ] [[package]] name = "proc-macro2" -version = "1.0.105" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] @@ -2647,7 +2707,7 @@ checksum = "9e2e25ee72f5b24d773cae88422baddefff7714f97aab68d96fe2b6fc4a28fb2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2664,7 +2724,7 @@ dependencies = [ "rustc-hash", "rustls", "socket2", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", "web-time", @@ -2672,9 +2732,9 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.13" +version = "0.11.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" +checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" dependencies = [ "bytes", "getrandom 0.3.4", @@ -2685,7 +2745,7 @@ dependencies = [ "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.17", + "thiserror 2.0.18", "tinyvec", "tracing", "web-time", @@ -2707,9 +2767,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.43" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -2831,9 +2891,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.12.2" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" dependencies = [ "aho-corasick", "memchr", @@ -2843,9 +2903,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" dependencies = [ "aho-corasick", "memchr", @@ -2854,9 +2914,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "reqwest" @@ -2939,15 +2999,15 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" +checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" [[package]] name = "rustc-hash" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" +checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" [[package]] name = "rustc_version" @@ -2960,9 +3020,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.36" +version = "0.23.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" +checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" dependencies = [ "once_cell", "ring", @@ -2984,9 +3044,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.9" +version = "0.103.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" +checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef" dependencies = [ "ring", "rustls-pki-types", @@ -3077,7 +3137,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -3107,9 +3167,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.16.1" +version = "3.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" +checksum = "dd5414fad8e6907dbdd5bc441a50ae8d6e26151a03b1de04d89a5576de61d01f" dependencies = [ "serde_core", "serde_with_macros", @@ -3117,14 +3177,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.16.1" +version = "3.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" +checksum = "d3db8978e608f1fe7357e211969fd9abdcae80bac1ba7a3369bb7eb6b404eb65" dependencies = [ - "darling", + "darling 0.23.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -3151,6 +3211,12 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "sha2-const-stable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f179d4e11094a893b82fff208f74d448a7512f99f5a0acbd5c679b705f83ed9" + [[package]] name = "sha3" version = "0.10.8" @@ -3199,9 +3265,9 @@ dependencies = [ [[package]] name = "simd-adler32" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" +checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" [[package]] name = "slab" @@ -3217,19 +3283,19 @@ checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "socket2" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "solana-account" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60e0ac2a81ae17e1b3570deb50242ab4cfde50b848b898f57288b6271cc7b71f" +checksum = "efc0ed36decb689413b9da5d57f2be49eea5bebb3cf7897015167b0c4336e731" dependencies = [ "bincode", "qualifier_attr", @@ -3239,16 +3305,16 @@ dependencies = [ "solana-account-info", "solana-clock", "solana-instruction-error", - "solana-pubkey 4.0.0", + "solana-pubkey 4.1.0", "solana-sdk-ids", "solana-sysvar", ] [[package]] name = "solana-account-decoder" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8464b3fc2a2be746bac737762d0641b36ac6abd8011d42ab39fbac347f7f35c4" +checksum = "310a1c3e5fa2e910e2e2a7141a04da396a8fb309dd80f0df97a68002e9416239" dependencies = [ "Inflector", "base64 0.22.1", @@ -3282,15 +3348,15 @@ dependencies = [ "spl-token-group-interface", "spl-token-interface", "spl-token-metadata-interface", - "thiserror 2.0.17", + "thiserror 2.0.18", "zstd", ] [[package]] name = "solana-account-decoder-client-types" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19c4d25af582526effd2ddb30a6d8d1272ec31ad77dbaa7f83d37dc3d8093867" +checksum = "6c998358e00c1260e9af46e006917094df19aa000321cd8192d8555ad1e1690a" dependencies = [ "base64 0.22.1", "bs58", @@ -3303,11 +3369,11 @@ dependencies = [ [[package]] name = "solana-account-info" -version = "3.1.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc3397241392f5756925029acaa8515dc70fcbe3d8059d4885d7d6533baf64fd" +checksum = "a9cf16495d9eb53e3d04e72366a33bb1c20c24e78c171d8b8f5978357b63ae95" dependencies = [ - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-program-error", "solana-program-memory", ] @@ -3318,7 +3384,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f37ca34c37f92ee341b73d5ce7c8ef5bb38e9a87955b4bd343c63fa18b149215" dependencies = [ - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-program-error", ] @@ -3328,14 +3394,14 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2ecac8e1b7f74c2baa9e774c42817e3e75b20787134b76cc4d45e8a604488f5" dependencies = [ - "solana-address 2.0.0", + "solana-address 2.5.0", ] [[package]] name = "solana-address" -version = "2.0.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e37320fd2945c5d654b2c6210624a52d66c3f1f73b653ed211ab91a703b35bdd" +checksum = "5f08236dacd0e6dc8234becef58e27c8567856644ef509d7e97957d55a91dc72" dependencies = [ "borsh", "bytemuck", @@ -3345,11 +3411,13 @@ dependencies = [ "five8_const", "serde", "serde_derive", + "sha2-const-stable", "solana-atomic-u64", - "solana-define-syscall 4.0.1", + "solana-define-syscall 5.0.0", "solana-program-error", "solana-sanitize", "solana-sha256-hasher", + "wincode", ] [[package]] @@ -3365,16 +3433,16 @@ dependencies = [ "solana-clock", "solana-instruction", "solana-instruction-error", - "solana-pubkey 4.0.0", + "solana-pubkey 4.1.0", "solana-sdk-ids", "solana-slot-hashes", ] [[package]] name = "solana-atomic-u64" -version = "3.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a933ff1e50aff72d02173cfcd7511bd8540b027ee720b75f353f594f834216d0" +checksum = "085db4906d89324cef2a30840d59eaecf3d4231c560ec7c9f6614a93c652f501" dependencies = [ "parking_lot", ] @@ -3409,7 +3477,7 @@ checksum = "7116e1d942a2432ca3f514625104757ab8a56233787e95144c93950029e31176" dependencies = [ "blake3", "solana-define-syscall 4.0.1", - "solana-hash 4.0.1", + "solana-hash 4.2.0", ] [[package]] @@ -3424,23 +3492,23 @@ dependencies = [ "ark-serialize 0.5.0", "bytemuck", "solana-define-syscall 5.0.0", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "solana-borsh" -version = "3.0.0" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc402b16657abbfa9991cd5cbfac5a11d809f7e7d28d3bb291baeb088b39060e" +checksum = "c04abbae16f57178a163125805637b8a076175bb5c0002fb04f4792bea901cf7" dependencies = [ "borsh", ] [[package]] name = "solana-bpf-loader-program" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c94a995a8f3a4f2a73f8441ad4c1908a96ed7c0ccd72254494188a9bdf5b8cb" +checksum = "fe15f3c804c37fbff5971d34d81d5d2853ae2d03f11947f44f1d10c5b84c9df0" dependencies = [ "agave-syscalls", "bincode", @@ -3467,9 +3535,9 @@ dependencies = [ [[package]] name = "solana-builtins" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4eb698f0d791a7dec49eb81bec9aca660521610307de34507620b8785b90b6a" +checksum = "d196c19ba1caf61782eba5de053061f298f36d9f2aec57073e2cf27403a926d3" dependencies = [ "agave-feature-set", "solana-bpf-loader-program", @@ -3487,9 +3555,9 @@ dependencies = [ [[package]] name = "solana-builtins-default-costs" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07089fead3d63bb572dc712e63c93a15fb70917bf99e64f0f9a2cd6cf7daf226" +checksum = "0da4d19885c5ee02d942a9e13354a39ef3ff591ee31d55353070c204ae7b8fed" dependencies = [ "agave-feature-set", "ahash", @@ -3505,9 +3573,9 @@ dependencies = [ [[package]] name = "solana-clock" -version = "3.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb62e9381182459a4520b5fe7fb22d423cae736239a6427fc398a88743d0ed59" +checksum = "95cf11109c3b6115cc510f1e31f06fdd52f504271bc24ef5f1249fbbcae5f9f3" dependencies = [ "serde", "serde_derive", @@ -3518,9 +3586,9 @@ dependencies = [ [[package]] name = "solana-commitment-config" -version = "3.1.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e41a3917076a8b5375809078ae3a6fb76a53e364b596ef8c4265e7f410876f3" +checksum = "1517aa49dcfa9cb793ef90e7aac81346d62ca4a546bb1a754030a033e3972e1c" dependencies = [ "serde", "serde_derive", @@ -3528,9 +3596,9 @@ dependencies = [ [[package]] name = "solana-compute-budget" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "392ef6cb307da3b2ce18a271dc68f7ddd294178c054a51370ebfbd2148c27716" +checksum = "98426b2f7788c089f4ab840347bff55901e65ceb5d76b850194f0802a733cd4e" dependencies = [ "solana-fee-structure", "solana-program-runtime", @@ -3538,9 +3606,9 @@ dependencies = [ [[package]] name = "solana-compute-budget-instruction" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c29779a9a1be332e5ed61f1e9583d75d5886270992e30abe2ea2eda0e194dec" +checksum = "3eb3ea80152fc745fa95d9cd2fc019c3591cdc7598cb4d85a6acdea7a40938f0" dependencies = [ "agave-feature-set", "log", @@ -3554,7 +3622,7 @@ dependencies = [ "solana-sdk-ids", "solana-svm-transaction", "solana-transaction-error", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -3570,9 +3638,9 @@ dependencies = [ [[package]] name = "solana-compute-budget-program" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efc42ac0cf6639aa883da315a4f7bc38a5b915d479bd5a2818f405f5d29f8b51" +checksum = "688491544a91b94fcb17cffb5cc4dca4be93bc96460fa27325a404c24b584130" dependencies = [ "solana-program-runtime", ] @@ -3604,22 +3672,22 @@ dependencies = [ "solana-define-syscall 4.0.1", "solana-instruction", "solana-program-error", - "solana-pubkey 4.0.0", + "solana-pubkey 4.1.0", "solana-stable-layout", ] [[package]] name = "solana-curve25519" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6d1e80bc1dec29e07019e96eeb7d72aa5ff70780a9ae700d7dd101692456739" +checksum = "9a9eaec815ed773919bc7269c027933fc2472d7b9876f68ea6f1281c7daa5278" dependencies = [ "bytemuck", "bytemuck_derive", "curve25519-dalek", "solana-define-syscall 3.0.0", "subtle", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -3663,13 +3731,13 @@ dependencies = [ [[package]] name = "solana-epoch-rewards" -version = "3.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b319a4ed70390af911090c020571f0ff1f4ec432522d05ab89f5c08080381995" +checksum = "f5e7b0ba210593ba8ddd39d6d234d81795d1671cebf3026baa10d5dc23ac42f0" dependencies = [ "serde", "serde_derive", - "solana-hash 3.1.0", + "solana-hash 4.2.0", "solana-sdk-ids", "solana-sdk-macro", "solana-sysvar-id", @@ -3697,15 +3765,15 @@ dependencies = [ "serde", "serde_derive", "solana-program-error", - "solana-pubkey 4.0.0", + "solana-pubkey 4.1.0", "solana-sdk-ids", ] [[package]] name = "solana-fee" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e59523870c810f19afd8d3d5536e6c2a4f8449a84e6d0fe9d7855641719614b" +checksum = "487e4ba57d889e2ecf94a0cac3a3f385fe26d17425aaef3514b79975af2b5d7f" dependencies = [ "agave-feature-set", "solana-fee-structure", @@ -3714,9 +3782,9 @@ dependencies = [ [[package]] name = "solana-fee-calculator" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a73cc03ca4bed871ca174558108835f8323e85917bb38b9c81c7af2ab853efe" +checksum = "4b2a5675b2cf8d407c672dc1776492b1f382337720ddf566645ae43237a3d8c3" dependencies = [ "log", "serde", @@ -3735,14 +3803,14 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "337c246447142f660f778cf6cb582beba8e28deb05b3b24bfb9ffd7c562e5f41" dependencies = [ - "solana-hash 4.0.1", + "solana-hash 4.2.0", ] [[package]] name = "solana-hash" -version = "4.0.1" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a5d48a6ee7b91fc7b998944ab026ed7b3e2fc8ee3bc58452644a86c2648152f" +checksum = "8064ea1d591ec791be95245058ca40f4f5345d390c200069d0f79bbf55bfae55" dependencies = [ "borsh", "bytemuck", @@ -3752,6 +3820,7 @@ dependencies = [ "serde_derive", "solana-atomic-u64", "solana-sanitize", + "wincode", ] [[package]] @@ -3772,14 +3841,14 @@ dependencies = [ "serde_derive", "solana-define-syscall 4.0.1", "solana-instruction-error", - "solana-pubkey 4.0.0", + "solana-pubkey 4.1.0", ] [[package]] name = "solana-instruction-error" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b04259e03c05faf38a8c24217b5cfe4c90572ae6184ab49cddb1584fdd756d3f" +checksum = "7d3d048edaaeef5a3dc8c01853e585539a74417e4c2d43a9e2c161270045b838" dependencies = [ "num-traits", "serde", @@ -3794,7 +3863,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60147e4d0a4620013df40bf30a86dd299203ff12fcb8b593cd51014fce0875d8" dependencies = [ "solana-account-view", - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-define-syscall 4.0.1", "solana-program-error", ] @@ -3825,7 +3894,7 @@ checksum = "ed1c0d16d6fdeba12291a1f068cdf0d479d9bff1141bf44afd7aa9d485f65ef8" dependencies = [ "sha3", "solana-define-syscall 4.0.1", - "solana-hash 4.0.1", + "solana-hash 4.2.0", ] [[package]] @@ -3837,7 +3906,7 @@ dependencies = [ "ed25519-dalek", "five8 1.0.0", "rand 0.8.5", - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-seed-phrase", "solana-signature", "solana-signer", @@ -3887,9 +3956,9 @@ dependencies = [ [[package]] name = "solana-loader-v4-program" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e6dc77612ba3ad8d531e36bdb4256f470ab4f8b6b0c85861e8b0d575b27e7a" +checksum = "9b79ecebf56ff8acf46d5c0d77a11e1cb9a0f8eeb6dd1a69d739f3bf8ea8570e" dependencies = [ "log", "solana-account", @@ -3944,11 +4013,11 @@ dependencies = [ [[package]] name = "solana-msg" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "264275c556ea7e22b9d3f87d56305546a38d4eee8ec884f3b126236cb7dcbbb4" +checksum = "726b7cbbc6be6f1c6f29146ac824343b9415133eee8cce156452ad1db93f8008" dependencies = [ - "solana-define-syscall 3.0.0", + "solana-define-syscall 5.0.0", ] [[package]] @@ -3994,16 +4063,16 @@ dependencies = [ [[package]] name = "solana-poseidon" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "625249974855a5c135090006f99b89f793bbdb828e6bf7c3ae849705dddee8ec" +checksum = "38d213ef5dc664927b43725e9aae1f0848e06d556e7a5f2857f37af9dbf9856c" dependencies = [ "ark-bn254 0.4.0", "ark-bn254 0.5.0", "light-poseidon 0.2.0", "light-poseidon 0.4.0", "solana-define-syscall 3.0.0", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -4024,14 +4093,14 @@ dependencies = [ "solana-account-info", "solana-define-syscall 4.0.1", "solana-program-error", - "solana-pubkey 4.0.0", + "solana-pubkey 4.1.0", ] [[package]] name = "solana-program-error" -version = "3.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1af32c995a7b692a915bb7414d5f8e838450cf7c70414e763d8abcae7b51f28" +checksum = "4f04fa578707b3612b095f0c8e19b66a1233f7c42ca8082fcb3b745afcc0add6" dependencies = [ "borsh", ] @@ -4047,24 +4116,24 @@ dependencies = [ [[package]] name = "solana-program-option" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e7b4ddb464f274deb4a497712664c3b612e3f5f82471d4e47710fc4ab1c3095" +checksum = "7a88006a9b8594088cec9027ab77caaaa258a2aaa2083d3f086c44b42e50aeab" [[package]] name = "solana-program-pack" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c169359de21f6034a63ebf96d6b380980307df17a8d371344ff04a883ec4e9d0" +checksum = "3d7701cb15b90667ae1c89ef4ac35a59c61e66ce58ddee13d729472af7f41d59" dependencies = [ "solana-program-error", ] [[package]] name = "solana-program-runtime" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42acffd338ca74b66b9ab3c6d469373cd76c8f20db7bb9276a164e3dfa48f94d" +checksum = "527e07453b083fa814e35bb56b8aaddb34d20eeeadeb0d13c115780365355c88" dependencies = [ "base64 0.22.1", "bincode", @@ -4102,7 +4171,7 @@ dependencies = [ "solana-sysvar", "solana-sysvar-id", "solana-transaction-context", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -4116,11 +4185,11 @@ dependencies = [ [[package]] name = "solana-pubkey" -version = "4.0.0" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6f7104d456b58e1418c21a8581e89810278d1190f70f27ece7fc0b2c9282a57" +checksum = "1b06bd918d60111ee1f97de817113e2040ca0cedb740099ee8d646233f6b906c" dependencies = [ - "solana-address 2.0.0", + "solana-address 2.5.0", ] [[package]] @@ -4148,9 +4217,9 @@ dependencies = [ [[package]] name = "solana-rpc-client" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d0ca112a1f5a94870d0eae0d1fac2009a0f717523188dd1a867dab7e921e17e" +checksum = "11bff5621e2141a453d5228bae473fd395e2b53e6919c81169421e6ab75fe832" dependencies = [ "async-trait", "base64 0.22.1", @@ -4188,9 +4257,9 @@ dependencies = [ [[package]] name = "solana-rpc-client-api" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d934907c81013f8e561177045340702f957c840abb74a4f16e2b04bc10d4cd50" +checksum = "75bda0d4de2f8f394e56532dd5b3d95dd8afadb74195e5bb366e7c69deb95302" dependencies = [ "anyhow", "jsonrpc-core", @@ -4204,14 +4273,14 @@ dependencies = [ "solana-signer", "solana-transaction-error", "solana-transaction-status-client-types", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "solana-rpc-client-types" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "169b1197c7a242357478d0a88ed5c3e698cfd6ed0436d2eb710cfea79d1b0b92" +checksum = "aceb2a48783c4297f564b8f8f962181d921ac004e84efbd7313cf44e3ad54a83" dependencies = [ "base64 0.22.1", "bs58", @@ -4231,7 +4300,7 @@ dependencies = [ "solana-transaction-status-client-types", "solana-version", "spl-generic-token", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -4253,7 +4322,7 @@ dependencies = [ "log", "rand 0.8.5", "rustc-demangle", - "thiserror 2.0.17", + "thiserror 2.0.18", "winapi", ] @@ -4263,30 +4332,30 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "def234c1956ff616d46c9dd953f251fa7096ddbaa6d52b165218de97882b7280" dependencies = [ - "solana-address 2.0.0", + "solana-address 2.5.0", ] [[package]] name = "solana-sdk-macro" -version = "3.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6430000e97083460b71d9fbadc52a2ab2f88f53b3a4c5e58c5ae3640a0e8c00" +checksum = "8765316242300c48242d84a41614cb3388229ec353ba464f6fe62a733e41806f" dependencies = [ "bs58", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "solana-secp256k1-recover" -version = "3.1.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de18cfdab99eeb940fbedd8c981fa130c0d76252da75d05446f22fae8b51932" +checksum = "e7c5f18893d62e6c73117dcba48f8f5e3266d90e5ec3d0a0a90f9785adac36c1" dependencies = [ "k256", - "solana-define-syscall 4.0.1", - "thiserror 2.0.17", + "solana-define-syscall 5.0.0", + "thiserror 2.0.18", ] [[package]] @@ -4311,21 +4380,21 @@ dependencies = [ [[package]] name = "solana-serde-varint" -version = "3.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e5174c57d5ff3c1995f274d17156964664566e2cde18a07bba1586d35a70d3b" +checksum = "950e5b83e839dc0f92c66afc124bb8f40e89bc90f0579e8ec5499296d27f54e3" dependencies = [ "serde", ] [[package]] name = "solana-serialize-utils" -version = "3.1.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e41dd8feea239516c623a02f0a81c2367f4b604d7965237fed0751aeec33ed" +checksum = "5d7cc401931d178472358e6b78dc72d031dc08f752d7410f0e8bd259dd6f02fa" dependencies = [ "solana-instruction-error", - "solana-pubkey 3.0.0", + "solana-pubkey 4.1.0", "solana-sanitize", ] @@ -4337,14 +4406,14 @@ checksum = "db7dc3011ea4c0334aaaa7e7128cb390ecf546b28d412e9bf2064680f57f588f" dependencies = [ "sha2 0.10.9", "solana-define-syscall 4.0.1", - "solana-hash 4.0.1", + "solana-hash 4.2.0", ] [[package]] name = "solana-short-vec" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79fb1809a32cfcf7d9c47b7070a92fa17cdb620ab5829e9a8a9ff9d138a7a175" +checksum = "de3bd991c2cc415291c86bb0b6b4d53e93d13bb40344e4c5a2884e0e4f5fa93f" dependencies = [ "serde_core", ] @@ -4376,13 +4445,13 @@ dependencies = [ [[package]] name = "solana-slot-hashes" -version = "3.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80a293f952293281443c04f4d96afd9d547721923d596e92b4377ed2360f1746" +checksum = "2585f70191623887329dfb5078da3a00e15e3980ea67f42c2e10b07028419f43" dependencies = [ "serde", "serde_derive", - "solana-hash 3.1.0", + "solana-hash 4.2.0", "solana-sdk-ids", "solana-sysvar-id", ] @@ -4431,9 +4500,9 @@ dependencies = [ [[package]] name = "solana-svm-callback" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdc5816b4a66295e92f16737150cd5754bc6822c4550e5477ed1885dc7949f01" +checksum = "c895f1add5c9ceff634f485554ddbcbceb88cba71b2f753c4caaba461690d2c6" dependencies = [ "solana-account", "solana-clock", @@ -4443,30 +4512,30 @@ dependencies = [ [[package]] name = "solana-svm-feature-set" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91a5fd5b82b7abe74f286179380469ea577f56a9d986a6071ed75b6276b42c64" +checksum = "5addc8fc7beb262aed2df0c34322a04a1b07b82d35fac0a34cd01f5263f7e971" [[package]] name = "solana-svm-log-collector" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb96637a782b68298f72a12a150666f014c55f3d7fa18e01530c381bb4faf519" +checksum = "3e985304ae8370c2b14c5c31c3e4dfdd18bc38ba806ee341655119430116c1f0" dependencies = [ "log", ] [[package]] name = "solana-svm-measure" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dccafbbda4f417726b06cc351cd9ad3db58d74141c0e1c97ea88c62078c194b4" +checksum = "d8bc239ef12213c45a4077799a154f340b290938973ad11dc4aaedee8fe39319" [[package]] name = "solana-svm-timings" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dc729e23a2ea9c70af2652bec01dd4c3104ac793df696066b22fdb83ae5aa19" +checksum = "df7bc8099ec662531e751607c096a2b336502b592ddd2cf584ec8312fd499fa8" dependencies = [ "eager", "enum-iterator", @@ -4475,9 +4544,9 @@ dependencies = [ [[package]] name = "solana-svm-transaction" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bcab6c4c575ed11377fa2878358c1d0673f0223f1763e9f5fe76f0060645f8a" +checksum = "29a9d25c729620fc70664e17d787a7804e52903da6fc94810e5dac7ca3217064" dependencies = [ "solana-hash 3.1.0", "solana-message", @@ -4489,9 +4558,9 @@ dependencies = [ [[package]] name = "solana-svm-type-overrides" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a32fa5f1cd4b6f06950ba2e24e2b1fb806d3ac5634bd9518d7b8c73cf3cf77ee" +checksum = "5093201eaac4a41edcaab9fc0060712d5bce2d2a0ca6134d18e9bcac2b3739bc" dependencies = [ "rand 0.8.5", ] @@ -4520,7 +4589,7 @@ dependencies = [ "num-traits", "serde", "serde_derive", - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-instruction", "solana-msg", "solana-program-error", @@ -4528,9 +4597,9 @@ dependencies = [ [[package]] name = "solana-system-program" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08808f49cf90d5c403d309bac001d4e4eebac3b8ccd3568ea855332c5f139c4" +checksum = "ab198a979e1bfa90e5a481fd3cec77326660e182668a248020cbd427c0ea1b5f" dependencies = [ "bincode", "log", @@ -4569,13 +4638,13 @@ dependencies = [ "solana-epoch-rewards", "solana-epoch-schedule", "solana-fee-calculator", - "solana-hash 4.0.1", + "solana-hash 4.2.0", "solana-instruction", "solana-last-restart-slot", "solana-program-entrypoint", "solana-program-error", "solana-program-memory", - "solana-pubkey 4.0.0", + "solana-pubkey 4.1.0", "solana-rent", "solana-sdk-ids", "solana-sdk-macro", @@ -4590,7 +4659,7 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17358d1e9a13e5b9c2264d301102126cf11a47fd394cdf3dec174fe7bc96e1de" dependencies = [ - "solana-address 2.0.0", + "solana-address 2.5.0", "solana-sdk-ids", ] @@ -4603,8 +4672,8 @@ dependencies = [ "bincode", "serde", "serde_derive", - "solana-address 2.0.0", - "solana-hash 4.0.1", + "solana-address 2.5.0", + "solana-hash 4.2.0", "solana-instruction", "solana-instruction-error", "solana-message", @@ -4618,9 +4687,9 @@ dependencies = [ [[package]] name = "solana-transaction-context" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cc4d1cd3ae46f1e93740cc6faa7fed82d921cbe9a82f93b103a323cbd432b12" +checksum = "15c4936df4b86a943ea6d552ca2c64fcc0d1a06dee2193cbf463eaedc372736d" dependencies = [ "bincode", "qualifier_attr", @@ -4648,9 +4717,9 @@ dependencies = [ [[package]] name = "solana-transaction-status-client-types" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc89888b2e96c03339c388447134bd64ac6d5a30d9286f74b82593129b702a93" +checksum = "57ab817d4c93e71f5e91d36ee3ff1742cd2b5af4bdb16b5db3047d2f71cb4955" dependencies = [ "base64 0.22.1", "bincode", @@ -4667,14 +4736,14 @@ dependencies = [ "solana-transaction", "solana-transaction-context", "solana-transaction-error", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "solana-version" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f496e1623d5e687c1a65bc4fcd17cab819998232863ee038749d625857c04888" +checksum = "d84bcb8923fe9a7f8acb2cea7bf7aa4e1603d77b207d318b3315e5b1eec65dc2" dependencies = [ "agave-feature-set", "rand 0.8.5", @@ -4712,9 +4781,9 @@ dependencies = [ [[package]] name = "solana-vote-program" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1c1534ccf63793318da4ddacca701ab77a7f3636a90027cb0b4cbba783f474c" +checksum = "55e2eab8557ff61ae2f58ebdb63aabf3579e04eb3dd07e8b4c4102704a137bae" dependencies = [ "agave-feature-set", "bincode", @@ -4739,14 +4808,24 @@ dependencies = [ "solana-transaction", "solana-transaction-context", "solana-vote-interface", - "thiserror 2.0.17", + "thiserror 2.0.18", +] + +[[package]] +name = "solana-zero-copy" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94f52dd8f733a13f6a18e55de83cf97c4c3f5fdf27ea3830bcff0b35313efcc2" +dependencies = [ + "bytemuck", + "bytemuck_derive", ] [[package]] name = "solana-zk-elgamal-proof-program" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6365d01b90391f88c46c6b9fe9416d0e3f3ac4c9cd89b0236cbce6554d17ba0c" +checksum = "98ebd77845de672972a32c357d7a68f2cc16c1037cc0ebf550ebba167827c10c" dependencies = [ "agave-feature-set", "bytemuck", @@ -4791,16 +4870,16 @@ dependencies = [ "solana-signature", "solana-signer", "subtle", - "thiserror 2.0.17", + "thiserror 2.0.18", "wasm-bindgen", "zeroize", ] [[package]] name = "solana-zk-token-proof-program" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5a88eafda71e44b92cd19910ed7402c22d7dde464a37e23f8f732f92bb31b9f" +checksum = "2c13a05831857b4e3320d98cdd77a3f7b645566508d8f66a07c9168ac1e8bc68" dependencies = [ "agave-feature-set", "bytemuck", @@ -4815,9 +4894,9 @@ dependencies = [ [[package]] name = "solana-zk-token-sdk" -version = "3.1.7" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51825185492360148c72155eb771e97b42ca38716133e3bc7d52a49e76d20cfc" +checksum = "cd8dab3f2df045b7bec3cb3e1cff0889ec46d776191c3a2af19a77ddd3c4c6fc" dependencies = [ "aes-gcm-siv", "base64 0.22.1", @@ -4843,7 +4922,7 @@ dependencies = [ "solana-signature", "solana-signer", "subtle", - "thiserror 2.0.17", + "thiserror 2.0.18", "zeroize", ] @@ -4869,9 +4948,9 @@ dependencies = [ [[package]] name = "spl-discriminator" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d48cc11459e265d5b501534144266620289720b4c44522a47bc6b63cd295d2f3" +checksum = "e597c5ff9ed7c74a54dbc47bae2f06e4db8c98f4356ad280200dc11878266db1" dependencies = [ "bytemuck", "solana-program-error", @@ -4887,7 +4966,7 @@ checksum = "d9e8418ea6269dcfb01c712f0444d2c75542c04448b480e87de59d2865edc750" dependencies = [ "quote", "spl-discriminator-syn", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -4899,7 +4978,7 @@ dependencies = [ "proc-macro2", "quote", "sha2 0.10.9", - "syn 2.0.114", + "syn 2.0.117", "thiserror 1.0.69", ] @@ -4915,9 +4994,9 @@ dependencies = [ [[package]] name = "spl-pod" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1233fdecd7461611d69bb87bc2e95af742df47291975d21232a0be8217da9de" +checksum = "d6f3df240f67bea453d4bc5749761e45436d14b9457ed667e0300555d5c271f3" dependencies = [ "borsh", "bytemuck", @@ -4929,7 +5008,7 @@ dependencies = [ "solana-program-option", "solana-pubkey 3.0.0", "solana-zk-sdk", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -4957,7 +5036,7 @@ dependencies = [ "spl-token-group-interface", "spl-token-metadata-interface", "spl-type-length-value", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -4977,7 +5056,7 @@ dependencies = [ "solana-sdk-ids", "solana-zk-sdk", "spl-pod", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -4988,7 +5067,7 @@ checksum = "a0cd59fce3dc00f563c6fa364d67c3f200d278eae681f4dc250240afcfe044b1" dependencies = [ "curve25519-dalek", "solana-zk-sdk", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -5006,7 +5085,7 @@ dependencies = [ "solana-pubkey 3.0.0", "spl-discriminator", "spl-pod", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -5026,7 +5105,7 @@ dependencies = [ "solana-program-pack", "solana-pubkey 3.0.0", "solana-sdk-ids", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -5045,25 +5124,24 @@ dependencies = [ "spl-discriminator", "spl-pod", "spl-type-length-value", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "spl-type-length-value" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca20a1a19f4507a98ca4b28ff5ed54cac9b9d34ed27863e2bde50a3238f9a6ac" +checksum = "2504631748c48d2a937414d64a12dcac4588d34bd07d355d648619c189d29435" dependencies = [ "bytemuck", "num-derive", "num-traits", "num_enum", "solana-account-info", - "solana-msg", "solana-program-error", + "solana-zero-copy", "spl-discriminator", - "spl-pod", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -5097,9 +5175,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.114" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -5123,7 +5201,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -5137,11 +5215,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.17", + "thiserror-impl 2.0.18", ] [[package]] @@ -5152,18 +5230,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "thiserror-impl" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -5178,9 +5256,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" dependencies = [ "tinyvec_macros", ] @@ -5193,9 +5271,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.49.0" +version = "1.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" +checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" dependencies = [ "bytes", "libc", @@ -5210,13 +5288,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.6.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" +checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -5244,18 +5322,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.7.5+spec-1.1.0" +version = "1.1.0+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +checksum = "97251a7c317e03ad83774a8752a7e81fb6067740609f75ea2b585b569a59198f" dependencies = [ "serde_core", ] [[package]] name = "toml_edit" -version = "0.23.10+spec-1.0.0" +version = "0.25.8+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" +checksum = "16bff38f1d86c47f9ff0647e6838d7bb362522bdf44006c7068c2b1e606f1f3c" dependencies = [ "indexmap", "toml_datetime", @@ -5265,9 +5343,9 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.6+spec-1.1.0" +version = "1.1.0+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" +checksum = "2334f11ee363607eb04df9b8fc8a13ca1715a72ba8662a26ac285c98aabb4011" dependencies = [ "winnow", ] @@ -5355,9 +5433,9 @@ checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-width" @@ -5465,18 +5543,18 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.1+wasi-0.2.4" +version = "1.0.2+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.106" +version = "0.2.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" +checksum = "6523d69017b7633e396a89c5efab138161ed5aafcbc8d3e5c5a42ae38f50495a" dependencies = [ "cfg-if", "once_cell", @@ -5487,22 +5565,19 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.56" +version = "0.4.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" +checksum = "2d1faf851e778dfa54db7cd438b70758eba9755cb47403f3496edd7c8fc212f0" dependencies = [ - "cfg-if", "js-sys", - "once_cell", "wasm-bindgen", - "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.106" +version = "0.2.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" +checksum = "4e3a6c758eb2f701ed3d052ff5737f5bfe6614326ea7f3bbac7156192dc32e67" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -5510,31 +5585,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.106" +version = "0.2.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" +checksum = "921de2737904886b52bcbb237301552d05969a6f9c40d261eb0533c8b055fedf" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.106" +version = "0.2.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" +checksum = "a93e946af942b58934c604527337bad9ae33ba1d5c6900bbb41c2c07c2364a93" dependencies = [ "unicode-ident", ] [[package]] name = "web-sys" -version = "0.3.83" +version = "0.3.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" +checksum = "84cde8507f4d7cfcb1185b8cb5890c494ffea65edbe1ba82cfd63661c805ed94" dependencies = [ "js-sys", "wasm-bindgen", @@ -5581,6 +5656,31 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "wincode" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "657690780ce23e6f66576a782ffd88eb353512381817029cc1d7a99154bb6d1f" +dependencies = [ + "pastey", + "proc-macro2", + "quote", + "thiserror 2.0.18", + "wincode-derive", +] + +[[package]] +name = "wincode-derive" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fca057fc9a13dd19cdb64ef558635d43c42667c0afa1ae7915ea1fa66993fd1a" +dependencies = [ + "darling 0.21.3", + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "windows-link" version = "0.2.1" @@ -5745,18 +5845,18 @@ checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winnow" -version = "0.7.14" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" dependencies = [ "memchr", ] [[package]] name = "wit-bindgen" -version = "0.46.0" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" [[package]] name = "writeable" @@ -5783,28 +5883,28 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.33" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668f5168d10b9ee831de31933dc111a459c97ec93225beb307aed970d1372dfd" +checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.33" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c7962b26b0a8685668b671ee4b54d007a67d4eaf05fda79ac0ecf41e32270f1" +checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -5824,7 +5924,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "synstructure", ] @@ -5845,7 +5945,7 @@ checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -5878,14 +5978,14 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "zmij" -version = "1.0.13" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac93432f5b761b22864c774aac244fa5c0fd877678a4c37ebf6cf42208f9c9ec" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" [[package]] name = "zstd" diff --git a/Cargo.toml b/Cargo.toml index b80f13f..64ee508 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,7 +12,7 @@ default = ["deposit", "swap"] upstream-bpf = [] # Action groups -deposit = ["kamino-deposit", "jupiter-deposit"] +deposit = ["kamino-deposit", "jupiter-deposit", "marginfi-deposit"] swap = [ "perena-swap", "solfi-swap", @@ -31,6 +31,7 @@ swap = [ # Deposit protocols kamino-deposit = ["dep:beethoven-deposit-kamino"] jupiter-deposit = ["dep:beethoven-deposit-jupiter"] +marginfi-deposit = ["dep:beethoven-deposit-marginfi"] # Swap protocols perena-swap = ["dep:beethoven-swap-perena"] @@ -56,6 +57,7 @@ solana-program-error = "3.0.0" # Optional protocol crates beethoven-deposit-kamino = { path = "crates/deposit/kamino", optional = true } beethoven-deposit-jupiter = { path = "crates/deposit/jupiter", optional = true } +beethoven-deposit-marginfi = { path = "crates/deposit/marginfi", optional = true } beethoven-swap-perena = { path = "crates/swap/perena", optional = true } beethoven-swap-solfi = { path = "crates/swap/solfi", optional = true } beethoven-swap-solfi-v2 = { path = "crates/swap/solfi-v2", optional = true } @@ -74,6 +76,7 @@ members = [ "crates/core", "crates/deposit/kamino", "crates/deposit/jupiter", + "crates/deposit/marginfi", "crates/swap/perena", "crates/swap/solfi", "crates/swap/solfi-v2", diff --git a/crates/deposit/marginfi/Cargo.toml b/crates/deposit/marginfi/Cargo.toml new file mode 100644 index 0000000..e919ec2 --- /dev/null +++ b/crates/deposit/marginfi/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "beethoven-deposit-marginfi" +description = "Marginfi deposit implementation for Beethoven" +version = "0.0.1" +license = "MIT" +edition = "2021" + +[dependencies] +beethoven-core = { path = "../../core" } +solana-account-view = "1.0.0" +solana-address = "2.0.0" +solana-instruction-view = "1.0.0" +solana-program-error = "3.0.0" diff --git a/crates/deposit/marginfi/src/lib.rs b/crates/deposit/marginfi/src/lib.rs new file mode 100644 index 0000000..2d68673 --- /dev/null +++ b/crates/deposit/marginfi/src/lib.rs @@ -0,0 +1,143 @@ +#![no_std] + +use { + beethoven_core::Deposit, + core::mem::MaybeUninit, + solana_account_view::AccountView, + solana_address::Address, + solana_instruction_view::{ + cpi::{invoke_signed, Signer}, + InstructionAccount, InstructionView, + }, + solana_program_error::{ProgramError, ProgramResult}, +}; + +pub const MARGINFI_PROGRAM_ID: Address = + Address::from_str_const("MFv2hWf31Z9kbCa1snEPYctwafyhdvnV7FZnsebVacA"); +pub const LENDING_ACCOUNT_DEPOSIT_DISCRIMINATOR: [u8; 8] = [171, 94, 235, 103, 82, 64, 212, 140]; +pub const DEPOSIT_DATA_LEN: usize = 18; + +pub struct Marginfi; + +pub struct MarginfiDepositData { + pub deposit_up_to_amount: Option, +} + +impl MarginfiDepositData { + pub const DATA_LEN: usize = 2; +} + +impl TryFrom<&[u8]> for MarginfiDepositData { + type Error = ProgramError; + + fn try_from(data: &[u8]) -> Result { + if data.len() < Self::DATA_LEN { + return Err(ProgramError::InvalidInstructionData); + } + + Ok(Self { + deposit_up_to_amount: if data[0] == 0 { None } else { Some(data[1]) }, + }) + } +} + +pub struct MarginfiDepositAccounts<'info> { + pub marginfi_program: &'info AccountView, + pub group: &'info AccountView, + pub marginfi_account: &'info AccountView, + pub authority: &'info AccountView, + pub bank: &'info AccountView, + pub signer_token_account: &'info AccountView, + pub liquidity_vault: &'info AccountView, + pub token_program: &'info AccountView, +} + +impl<'info> TryFrom<&'info [AccountView]> for MarginfiDepositAccounts<'info> { + type Error = ProgramError; + + fn try_from(accounts: &'info [AccountView]) -> Result { + let [marginfi_program, group, marginfi_account, authority, bank, signer_token_account, liquidity_vault, token_program, ..] = + accounts + else { + return Err(ProgramError::NotEnoughAccountKeys); + }; + + Ok(MarginfiDepositAccounts { + marginfi_program, + group, + marginfi_account, + authority, + bank, + signer_token_account, + liquidity_vault, + token_program, + }) + } +} + +impl<'info> Deposit<'info> for Marginfi { + type Accounts = MarginfiDepositAccounts<'info>; + type Data = MarginfiDepositData; + + fn deposit_signed( + ctx: &MarginfiDepositAccounts<'info>, + amount: u64, + data: &Self::Data, + signer_seeds: &[Signer], + ) -> ProgramResult { + let accounts = [ + InstructionAccount::readonly(ctx.group.address()), + InstructionAccount::writable(ctx.marginfi_account.address()), + InstructionAccount::writable_signer(ctx.authority.address()), + InstructionAccount::writable(ctx.bank.address()), + InstructionAccount::writable(ctx.signer_token_account.address()), + InstructionAccount::writable(ctx.liquidity_vault.address()), + InstructionAccount::readonly(ctx.token_program.address()), + ]; + + let account_infos = [ + ctx.group, + ctx.marginfi_account, + ctx.authority, + ctx.bank, + ctx.signer_token_account, + ctx.liquidity_vault, + ctx.token_program, + ]; + + let mut instruction_data = MaybeUninit::<[u8; DEPOSIT_DATA_LEN]>::uninit(); + unsafe { + let ptr = instruction_data.as_mut_ptr() as *mut u8; + core::ptr::copy_nonoverlapping(LENDING_ACCOUNT_DEPOSIT_DISCRIMINATOR.as_ptr(), ptr, 8); + core::ptr::copy_nonoverlapping(amount.to_le_bytes().as_ptr(), ptr.add(8), 8); + match data.deposit_up_to_amount { + None => { + *ptr.add(16) = 0; + *ptr.add(17) = 0; + } + Some(v) => { + *ptr.add(16) = 1; + *ptr.add(17) = v; + } + } + } + + let deposit_ix = InstructionView { + program_id: &MARGINFI_PROGRAM_ID, + accounts: &accounts, + data: unsafe { instruction_data.assume_init_ref() }, + }; + + invoke_signed(&deposit_ix, &account_infos, signer_seeds)?; + + Ok(()) + } + + fn deposit( + ctx: &MarginfiDepositAccounts<'info>, + amount: u64, + data: &Self::Data, + ) -> ProgramResult { + Self::deposit_signed(ctx, amount, data, &[]) + } +} diff --git a/src/context.rs b/src/context.rs index 43ed245..f695597 100644 --- a/src/context.rs +++ b/src/context.rs @@ -551,6 +551,9 @@ pub enum DepositContext<'info> { #[cfg(feature = "jupiter-deposit")] Jupiter(crate::jupiter::JupiterEarnDepositAccounts<'info>), + + #[cfg(feature = "marginfi-deposit")] + Marginfi(crate::marginfi::MarginfiDepositAccounts<'info>), } /// Protocol-specific deposit data enum for use with DepositContext @@ -559,12 +562,15 @@ pub enum DepositData { Kamino(()), #[cfg(feature = "jupiter-deposit")] Jupiter(()), + + #[cfg(feature = "marginfi-deposit")] + Marginfi(crate::marginfi::MarginfiDepositData), } impl<'a> DepositContext<'a> { pub fn try_from_deposit_data( &self, - _data: &'a [u8], + data: &'a [u8], ) -> Result<(DepositData, &'a [u8]), ProgramError> { match self { #[cfg(feature = "kamino-deposit")] @@ -573,6 +579,12 @@ impl<'a> DepositContext<'a> { #[cfg(feature = "jupiter-deposit")] DepositContext::Jupiter(_) => Ok((DepositData::Jupiter(()), &[])), + #[cfg(feature = "marginfi-deposit")] + DepositContext::Marginfi(_) => Ok(( + DepositData::Marginfi(crate::marginfi::MarginfiDepositData::try_from(data)?), + &[], + )), + #[allow(unreachable_patterns)] _ => Err(ProgramError::InvalidAccountData), } @@ -586,7 +598,7 @@ impl<'info> Deposit<'info> for DepositContext<'info> { fn deposit_signed( ctx: &Self::Accounts, amount: u64, - _data: &Self::Data, + data: &Self::Data, signer_seeds: &[Signer], ) -> ProgramResult { match ctx { @@ -600,6 +612,15 @@ impl<'info> Deposit<'info> for DepositContext<'info> { crate::jupiter::JupiterEarn::deposit_signed(accounts, amount, &(), signer_seeds) } + #[cfg(feature = "marginfi-deposit")] + DepositContext::Marginfi(accounts) => { + if let DepositData::Marginfi(data) = data { + crate::marginfi::Marginfi::deposit_signed(accounts, amount, data, signer_seeds) + } else { + Err(ProgramError::InvalidInstructionData) + } + } + #[allow(unreachable_patterns)] _ => Err(ProgramError::InvalidAccountData), } @@ -633,5 +654,14 @@ pub fn try_from_deposit_context<'info>( return Ok(DepositContext::Jupiter(ctx)); } + #[cfg(feature = "marginfi-deposit")] + if address_eq( + detector_account.address(), + &crate::marginfi::MARGINFI_PROGRAM_ID, + ) { + let ctx = crate::marginfi::MarginfiDepositAccounts::try_from(accounts)?; + return Ok(DepositContext::Marginfi(ctx)); + } + Err(ProgramError::InvalidAccountData) } diff --git a/src/lib.rs b/src/lib.rs index 0a22060..c8d5484 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -7,6 +7,8 @@ pub use beethoven_deposit_jupiter as jupiter; // Re-export protocol crates under feature flags #[cfg(feature = "kamino-deposit")] pub use beethoven_deposit_kamino as kamino; +#[cfg(feature = "marginfi-deposit")] +pub use beethoven_deposit_marginfi as marginfi; #[cfg(feature = "aldrin-swap")] pub use beethoven_swap_aldrin as aldrin; #[cfg(feature = "aldrin_v2-swap")] diff --git a/tests/deposit/marginfi.rs b/tests/deposit/marginfi.rs new file mode 100644 index 0000000..40d67d3 --- /dev/null +++ b/tests/deposit/marginfi.rs @@ -0,0 +1,14 @@ +use {crate::helper::*, solana_keypair::Keypair, solana_signer::Signer}; + +#[test] +fn test_marginfi_deposit() { + let mut svm = setup_svm(); + let payer = Keypair::new(); + svm.airdrop(&payer.pubkey(), 10_000_000_000).unwrap(); + + // TODO: Load beethoven-test program + // TODO: Load marginfi program or mock + // TODO: Set up accounts from fixtures + // TODO: Execute deposit instruction + // TODO: Verify results +}