diff --git a/CHANGELOG.md b/CHANGELOG.md index c2d599819..194068508 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixes +- program: add switchboard ([#878](https://github.com/drift-labs/protocol-v2/pull/878)) - sdk: handle oracle failover when oracle is changed ([#875](https://github.com/drift-labs/protocol-v2/pull/875)) ### Breaking diff --git a/Cargo.lock b/Cargo.lock index 1f5df01b7..55dc8d2a4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,22 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + [[package]] name = "aead" version = "0.4.3" @@ -40,24 +56,39 @@ dependencies = [ [[package]] name = "ahash" -version = "0.7.6" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "getrandom 0.2.9", + "getrandom 0.2.12", "once_cell", "version_check", ] [[package]] name = "aho-corasick" -version = "0.7.18" +version = "0.7.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" dependencies = [ "memchr", ] +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + [[package]] name = "alloc-traits" version = "0.1.1" @@ -72,10 +103,10 @@ checksum = "2d5e1a413b311b039d29b61d0dbb401c9dbf04f792497ceca87593454bf6d7dd" dependencies = [ "anchor-syn", "anyhow", - "proc-macro2", - "quote", + "proc-macro2 1.0.78", + "quote 1.0.35", "regex", - "syn 1.0.92", + "syn 1.0.109", ] [[package]] @@ -87,10 +118,10 @@ dependencies = [ "anchor-syn", "anyhow", "bs58 0.4.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.78", + "quote 1.0.35", "rustversion", - "syn 1.0.92", + "syn 1.0.109", ] [[package]] @@ -100,8 +131,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "788e44f9e8501dabeb6f9229da0f3268fb2ae3208912608ffaa056a72031296f" dependencies = [ "anchor-syn", - "proc-macro2", - "syn 1.0.92", + "proc-macro2 1.0.78", + "syn 1.0.109", ] [[package]] @@ -111,9 +142,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea0c4d8c7e4a2605ede6fcdced9690288b2f74e24768619a85229d57e597bc97" dependencies = [ "anchor-syn", - "proc-macro2", - "quote", - "syn 1.0.92", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", ] [[package]] @@ -124,9 +155,9 @@ checksum = "7a3b07d5c5d87b5edc72428b447b8e9ee1143b83dd1afc6a6b1d352c6a6164d8" dependencies = [ "anchor-syn", "anyhow", - "proc-macro2", - "quote", - "syn 1.0.92", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", ] [[package]] @@ -137,9 +168,26 @@ checksum = "b22ad0445115dbea5869b1d062da49ae125abed9132fc20c33227f25e42dfa6b" dependencies = [ "anchor-syn", "anyhow", - "proc-macro2", - "quote", - "syn 1.0.92", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", +] + +[[package]] +name = "anchor-client" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04c06e06497b5b4f392845e0d04dde8374fd244fa2832dd0e5c27bfd99cb0342" +dependencies = [ + "anchor-lang", + "anyhow", + "regex", + "serde", + "solana-account-decoder", + "solana-client", + "solana-sdk", + "thiserror", + "url", ] [[package]] @@ -150,9 +198,9 @@ checksum = "48daeff6781ba2f02961b0ad211feb9a2de75af345d42c62b1a252fd4dfb0724" dependencies = [ "anchor-syn", "anyhow", - "proc-macro2", - "quote", - "syn 1.0.92", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", ] [[package]] @@ -161,9 +209,9 @@ version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4fe2886f92c4f33ec1b2b8b2b43ca1b9070cf4929e63c7eaaa09a9f2c0d5123" dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.92", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", ] [[package]] @@ -181,9 +229,9 @@ dependencies = [ "anchor-derive-accounts", "anchor-derive-space", "arrayref", - "base64 0.13.0", + "base64 0.13.1", "bincode", - "borsh", + "borsh 0.9.3", "bytemuck", "solana-program", "thiserror", @@ -211,32 +259,101 @@ dependencies = [ "anyhow", "bs58 0.3.1", "heck", - "proc-macro2", - "quote", + "proc-macro2 1.0.78", + "quote 1.0.35", "serde", "serde_json", "sha2 0.9.9", - "syn 1.0.92", + "syn 1.0.109", "thiserror", ] +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + [[package]] name = "anyhow" -version = "1.0.70" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "arrayref" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" [[package]] name = "arrayvec" -version = "0.7.2" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "asn1-rs" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom 7.1.3", + "num-traits", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", + "synstructure", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", +] [[package]] name = "assert_matches" @@ -244,22 +361,56 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +[[package]] +name = "async-compression" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" +dependencies = [ + "brotli", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "async-mutex" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-trait" +version = "0.1.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.49", +] + [[package]] name = "atty" version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ - "hermit-abi", + "hermit-abi 0.1.19", "libc", "winapi", ] [[package]] name = "autocfg" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "base64" @@ -269,9 +420,21 @@ checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" [[package]] name = "base64" -version = "0.13.0" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64ct" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "bincode" @@ -288,6 +451,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" + [[package]] name = "bitmaps" version = "2.1.0" @@ -297,6 +466,18 @@ dependencies = [ "typenum", ] +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "blake3" version = "1.3.1" @@ -304,7 +485,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f" dependencies = [ "arrayref", - "arrayvec", + "arrayvec 0.7.4", "cc", "cfg-if", "constant_time_eq", @@ -323,9 +504,9 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.10.2" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ "generic-array", ] @@ -342,10 +523,20 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15bf3650200d8bffa99015595e10f1fbd17de07abbc25bb067da79e769939bfa" dependencies = [ - "borsh-derive", + "borsh-derive 0.9.3", "hashbrown 0.11.2", ] +[[package]] +name = "borsh" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f58b559fd6448c6e2fd0adb5720cd98a2506594cafa4737ff98c396f3e82f667" +dependencies = [ + "borsh-derive 1.3.1", + "cfg_aliases", +] + [[package]] name = "borsh-derive" version = "0.9.3" @@ -355,8 +546,22 @@ dependencies = [ "borsh-derive-internal", "borsh-schema-derive-internal", "proc-macro-crate 0.1.5", - "proc-macro2", - "syn 1.0.92", + "proc-macro2 1.0.78", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aadb5b6ccbd078890f6d7003694e33816e6b784358f18e15e7e6d9f065a57cd" +dependencies = [ + "once_cell", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.49", + "syn_derive", ] [[package]] @@ -365,9 +570,9 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065" dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.92", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", ] [[package]] @@ -376,9 +581,30 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0" dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.92", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", +] + +[[package]] +name = "brotli" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", ] [[package]] @@ -409,37 +635,69 @@ dependencies = [ "serde", ] +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", +] + [[package]] name = "bytemuck" -version = "1.13.0" +version = "1.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c041d3eab048880cb0b86b256447da3f18859a163c3b8d8893f4e6368abe6393" +checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192" +checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.13", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.49", ] [[package]] name = "byteorder" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.2.0" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" + +[[package]] +name = "caps" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0b3de4a0c5e67e16066a0715723abd91edc2f9001d09c46e1dca929351e130e" +checksum = "190baaad529bcfbde9e1a19022c42781bdb6ff9de25721abdb8fd98c0807730b" +dependencies = [ + "libc", + "thiserror", +] [[package]] name = "cc" @@ -457,13 +715,25 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chrono" -version = "0.4.30" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defd4e7873dbddba6c7c91e199c7fcb946abc4a6a4ac3195400bcfb01b5de877" +checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", "num-traits", + "serde", + "wasm-bindgen", + "windows-targets 0.52.0", ] [[package]] @@ -477,14 +747,67 @@ dependencies = [ [[package]] name = "cipher" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ "crypto-common", "inout", ] +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags 1.3.2", + "strsim 0.8.0", + "textwrap 0.11.0", + "unicode-width", + "vec_map", +] + +[[package]] +name = "clap" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" +dependencies = [ + "atty", + "bitflags 1.3.2", + "clap_lex", + "indexmap 1.9.3", + "once_cell", + "strsim 0.10.0", + "termcolor", + "textwrap 0.16.1", +] + +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", +] + +[[package]] +name = "console" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "unicode-width", + "windows-sys 0.52.0", +] + [[package]] name = "console_error_panic_hook" version = "0.1.7" @@ -497,73 +820,104 @@ dependencies = [ [[package]] name = "console_log" -version = "0.2.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501a375961cef1a0d44767200e66e4a559283097e91d0730b1d75dfb2f8a1494" +checksum = "e89f72f65e8501878b8a004d5a1afb780987e2ce2b4532c562e367a72c57499f" dependencies = [ "log", "web-sys", ] +[[package]] +name = "const-oid" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" + [[package]] name = "constant_time_eq" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + [[package]] name = "cpufeatures" -version = "0.2.2" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] [[package]] -name = "crossbeam-channel" -version = "0.5.6" +name = "crc32fast" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" dependencies = [ "cfg-if", +] + +[[package]] +name = "cron" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ff76b51e4c068c52bfd2866e1567bee7c567ae8f24ada09fd4307019e25eab7" +dependencies = [ + "chrono", + "nom 7.1.3", + "once_cell", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b" +dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-deque" -version = "0.8.2" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" dependencies = [ - "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.10" +version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "autocfg", - "cfg-if", "crossbeam-utils", - "memoffset", - "once_cell", - "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.11" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" -dependencies = [ - "cfg-if", - "once_cell", -] +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" [[package]] name = "crunchy" @@ -573,9 +927,9 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "crypto-common" -version = "0.1.3" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", "typenum", @@ -615,44 +969,141 @@ dependencies = [ ] [[package]] -name = "derivation-path" -version = "0.2.0" +name = "data-encoding" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" +checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" [[package]] -name = "digest" -version = "0.9.0" +name = "der" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c" dependencies = [ - "generic-array", + "const-oid", ] [[package]] -name = "digest" -version = "0.10.7" +name = "der-parser" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" dependencies = [ - "block-buffer 0.10.2", - "crypto-common", - "subtle", + "asn1-rs", + "displaydoc", + "nom 7.1.3", + "num-bigint 0.4.4", + "num-traits", + "rusticata-macros", ] [[package]] -name = "drift" -version = "2.66.0" -dependencies = [ +name = "derivation-path" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" + +[[package]] +name = "dialoguer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59c6f2989294b9a498d3ad5491a79c6deb604617378e1cdc4bfc1c1361fe2f87" +dependencies = [ + "console", + "shell-words", + "tempfile", + "zeroize", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "displaydoc" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.49", +] + +[[package]] +name = "dlopen" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71e80ad39f814a9abe68583cd50a2d45c8a67561c3361ab8da240587dda80937" +dependencies = [ + "dlopen_derive", + "lazy_static", + "libc", + "winapi", +] + +[[package]] +name = "dlopen_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f236d9e1b1fbd81cea0f9cbdc8dcc7e8ebcd80e6659cd7cb2ad5f6c05946c581" +dependencies = [ + "libc", + "quote 0.6.13", + "syn 0.15.44", +] + +[[package]] +name = "drift" +version = "2.66.0" +dependencies = [ "anchor-lang", "anchor-spl", "arrayref", - "base64 0.13.0", - "borsh", + "base64 0.13.1", + "borsh 0.9.3", "bytemuck", "bytes", "drift-macros", "enumflags2", + "getrandom 0.2.12", "num-derive", "num-integer", "num-traits", @@ -663,6 +1114,7 @@ dependencies = [ "solana-program", "solana-security-txt", "static_assertions", + "switchboard-solana", "thiserror", "uint", ] @@ -672,10 +1124,16 @@ name = "drift-macros" version = "0.1.0" source = "git+https://github.com/drift-labs/drift-macros.git?rev=c57d87#c57d87e073d13d43f4d1fb09fe6822915a4ccc11" dependencies = [ - "quote", - "syn 1.0.92", + "quote 1.0.35", + "syn 1.0.109", ] +[[package]] +name = "eager" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe71d579d1812060163dff96056261deb5bf6729b100fa2e36a68b9649ba3d3" + [[package]] name = "ed25519" version = "1.5.3" @@ -693,7 +1151,7 @@ checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" dependencies = [ "curve25519-dalek", "ed25519", - "rand", + "rand 0.7.3", "serde", "sha2 0.9.9", "zeroize", @@ -708,14 +1166,14 @@ dependencies = [ "derivation-path", "ed25519-dalek", "hmac 0.12.1", - "sha2 0.10.7", + "sha2 0.10.8", ] [[package]] name = "either" -version = "1.8.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" [[package]] name = "ellipsis-macros" @@ -724,11 +1182,58 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "598d7f4a52f256bc6d065f0ee1c8dd07275952f9425bdfc1639595c924e1498e" dependencies = [ "bs58 0.4.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.78", + "quote 1.0.35", "rustversion", "solana-program", - "syn 1.0.92", + "syn 1.0.109", +] + +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + +[[package]] +name = "encoding_rs" +version = "0.8.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enum-iterator" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2953d1df47ac0eb70086ccabf0275aa8da8591a28bd358ee2b52bd9f9e3ff9e9" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8958699f9359f0b04e691a13850d48b7de329138023876d07cbd024c2c820598" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", +] + +[[package]] +name = "enum_dispatch" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f33313078bb8d4d05a2733a94ac4c2d8a0df9a2b84424ebf4f33bfc224a890e" +dependencies = [ + "once_cell", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.49", ] [[package]] @@ -746,9 +1251,9 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.92", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", ] [[package]] @@ -764,6 +1269,46 @@ dependencies = [ "termcolor", ] +[[package]] +name = "envy" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f47e0157f2cb54f5ae1bd371b30a2ae4311e1c028f575cd4e81de7353215965" +dependencies = [ + "serde", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + [[package]] name = "feature-probe" version = "0.1.1" @@ -772,12 +1317,22 @@ checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" [[package]] name = "field-offset" -version = "0.3.4" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset 0.9.0", + "rustc_version", +] + +[[package]] +name = "flate2" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" dependencies = [ - "memoffset", - "rustc_version 0.3.3", + "crc32fast", + "miniz_oxide", ] [[package]] @@ -786,17 +1341,140 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.49", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + [[package]] name = "generic-array" -version = "0.14.6" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "serde", "typenum", "version_check", ] +[[package]] +name = "gethostname" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "getrandom" version = "0.1.16" @@ -812,9 +1490,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.9" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" dependencies = [ "cfg-if", "js-sys", @@ -823,6 +1501,25 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "h2" +version = "0.3.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 1.9.3", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "hashbrown" version = "0.11.2" @@ -841,29 +1538,50 @@ dependencies = [ "ahash", ] +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" + [[package]] name = "heck" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" dependencies = [ "unicode-segmentation", ] [[package]] name = "hermit-abi" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" dependencies = [ "libc", ] +[[package]] +name = "hermit-abi" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" + [[package]] name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "histogram" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12cb882ccb290b8646e554b157ab0b71e64e8d5bef775cd66b6531e52d302669" [[package]] name = "hmac" @@ -896,59 +1614,221 @@ dependencies = [ ] [[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - -[[package]] -name = "im" -version = "15.1.0" +name = "http" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" dependencies = [ - "bitmaps", - "rand_core 0.6.4", - "rand_xoshiro", - "rayon", - "serde", - "sized-chunks", - "typenum", - "version_check", + "bytes", + "fnv", + "itoa", ] [[package]] -name = "inout" -version = "0.1.3" +name = "http-body" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ - "generic-array", + "bytes", + "http", + "pin-project-lite", ] [[package]] -name = "itertools" -version = "0.9.0" +name = "httparse" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" -dependencies = [ - "either", -] +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] -name = "itertools" -version = "0.10.5" +name = "httpdate" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" +dependencies = [ + "http", + "hyper", + "rustls", + "tokio", + "tokio-rustls", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "im" +version = "15.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" +dependencies = [ + "bitmaps", + "rand_core 0.6.4", + "rand_xoshiro", + "rayon", + "serde", + "sized-chunks", + "typenum", + "version_check", +] + +[[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", +] + +[[package]] +name = "indexmap" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" +dependencies = [ + "equivalent", + "hashbrown 0.14.3", +] + +[[package]] +name = "indicatif" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d207dc617c7a380ab07ff572a6e52fa202a2a8f355860ac9c38e23f8196be1b" +dependencies = [ + "console", + "lazy_static", + "number_prefix", + "regex", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi 0.3.6", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "itertools" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] [[package]] name = "itoa" -version = "1.0.6" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "jobserver" @@ -961,18 +1841,36 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.61" +version = "0.3.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" +checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" dependencies = [ "wasm-bindgen", ] +[[package]] +name = "jsonrpc-core" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" +dependencies = [ + "futures", + "futures-executor", + "futures-util", + "log", + "serde", + "serde_derive", + "serde_json", +] + [[package]] name = "keccak" -version = "0.1.0" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] [[package]] name = "lazy_static" @@ -980,6 +1878,19 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +[[package]] +name = "lexical-core" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe" +dependencies = [ + "arrayvec 0.5.2", + "bitflags 1.3.2", + "cfg-if", + "ryu", + "static_assertions", +] + [[package]] name = "lib-sokoban" version = "0.3.0" @@ -994,9 +1905,30 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.141" +version = "0.2.153" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libredox" +version = "0.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5" +checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +dependencies = [ + "bitflags 2.4.2", + "libc", + "redox_syscall 0.4.1", +] [[package]] name = "libsecp256k1" @@ -1011,7 +1943,7 @@ dependencies = [ "libsecp256k1-core", "libsecp256k1-gen-ecmult", "libsecp256k1-gen-genmult", - "rand", + "rand 0.7.3", "serde", "sha2 0.9.9", "typenum", @@ -1046,35 +1978,45 @@ dependencies = [ "libsecp256k1-core", ] +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + [[package]] name = "lock_api" -version = "0.4.6" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ + "autocfg", "scopeguard", ] [[package]] name = "log" -version = "0.4.17" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "memchr" -version = "2.4.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "memmap2" -version = "0.5.3" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057a3db23999c867821a7a59feb06a578fcb03685e983dff90daf9e7d24ac08f" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" dependencies = [ "libc", ] @@ -1088,6 +2030,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + [[package]] name = "merlin" version = "3.0.0" @@ -1101,132 +2052,302 @@ dependencies = [ ] [[package]] -name = "num-derive" -version = "0.3.3" +name = "mime" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.92", -] +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] -name = "num-integer" -version = "0.1.44" +name = "minimal-lexical" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" -dependencies = [ - "autocfg", - "num-traits", -] +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] -name = "num-traits" -version = "0.2.15" +name = "miniz_oxide" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" dependencies = [ - "autocfg", + "adler", ] [[package]] -name = "num_cpus" -version = "1.13.1" +name = "mio" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" dependencies = [ - "hermit-abi", "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", ] [[package]] -name = "num_enum" -version = "0.5.9" +name = "nix" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d829733185c1ca374f17e52b762f24f535ec625d2cc1f070e34c8a9068f341b" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ - "num_enum_derive", + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.6.5", ] [[package]] -name = "num_enum_derive" -version = "0.5.11" +name = "nom" +version = "5.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +checksum = "08959a387a676302eebf4ddbcbc611da04285579f76f88ee0506c63b1a61dd4b" dependencies = [ - "proc-macro-crate 1.2.1", - "proc-macro2", - "quote", - "syn 1.0.92", + "lexical-core", + "memchr", + "version_check", ] [[package]] -name = "once_cell" -version = "1.15.0" +name = "nom" +version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] [[package]] -name = "opaque-debug" -version = "0.3.0" +name = "num" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +dependencies = [ + "num-bigint 0.2.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] [[package]] -name = "parking_lot" -version = "0.12.1" +name = "num-bigint" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" dependencies = [ - "lock_api", - "parking_lot_core", + "autocfg", + "num-integer", + "num-traits", ] [[package]] -name = "parking_lot_core" -version = "0.9.3" +name = "num-bigint" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-sys", + "autocfg", + "num-integer", + "num-traits", ] [[package]] -name = "pbkdf2" -version = "0.4.0" +name = "num-complex" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd" +checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" dependencies = [ - "crypto-mac", + "autocfg", + "num-traits", ] [[package]] -name = "pbkdf2" -version = "0.11.0" +name = "num-derive" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" dependencies = [ - "digest 0.10.7", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", ] [[package]] -name = "percent-encoding" -version = "2.3.0" +name = "num-integer" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] [[package]] -name = "pest" -version = "2.1.3" +name = "num-iter" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" +checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" dependencies = [ - "ucd-trie", + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +dependencies = [ + "autocfg", + "num-bigint 0.2.6", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi 0.3.6", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d829733185c1ca374f17e52b762f24f535ec625d2cc1f070e34c8a9068f341b" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro-crate 1.2.1", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", +] + +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + +[[package]] +name = "oid-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +dependencies = [ + "asn1-rs", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "os_str_bytes" +version = "6.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.4.1", + "smallvec", + "windows-targets 0.48.5", +] + +[[package]] +name = "pbkdf2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd" +dependencies = [ + "crypto-mac", +] + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "percentage" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd23b938276f14057220b707937bcb42fa76dda7560e57a2da30cb52d557937" +dependencies = [ + "num", ] [[package]] @@ -1234,7 +2355,7 @@ name = "phoenix-v1" version = "0.2.4" source = "git+https://github.com/drift-labs/phoenix-v1?rev=bf6b84#bf6b8447047aa16485d8d976528e43f5d53331d9" dependencies = [ - "borsh", + "borsh 0.9.3", "bytemuck", "ellipsis-macros", "itertools 0.10.5", @@ -1249,6 +2370,35 @@ dependencies = [ "thiserror", ] +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs8" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0" +dependencies = [ + "der", + "spki", + "zeroize", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + [[package]] name = "polyval" version = "0.5.3" @@ -1263,9 +2413,9 @@ dependencies = [ [[package]] name = "ppv-lite86" -version = "0.2.10" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro-crate" @@ -1287,15 +2437,76 @@ dependencies = [ "toml", ] +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2 1.0.78", + "quote 1.0.35", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +dependencies = [ + "unicode-xid 0.1.0", +] + [[package]] name = "proc-macro2" -version = "1.0.56" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" dependencies = [ "unicode-ident", ] +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", +] + [[package]] name = "pyth" version = "0.1.0" @@ -1320,15 +2531,83 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "quinn" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b435e71d9bfa0d8889927231970c51fb89c58fa63bffcab117c9c7a41e5ef8f" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "fxhash", + "quinn-proto", + "quinn-udp", + "rustls", + "thiserror", + "tokio", + "tracing", + "webpki", +] + +[[package]] +name = "quinn-proto" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fce546b9688f767a57530652488420d419a8b1f44a478b451c3d1ab6d992a55" +dependencies = [ + "bytes", + "fxhash", + "rand 0.8.5", + "ring 0.16.20", + "rustls", + "rustls-native-certs", + "rustls-pemfile 0.2.1", + "slab", + "thiserror", + "tinyvec", + "tracing", + "webpki", +] + +[[package]] +name = "quinn-udp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b07946277141531aea269befd949ed16b2c85a780ba1043244eda0969e538e54" +dependencies = [ + "futures-util", + "libc", + "quinn-proto", + "socket2", + "tokio", + "tracing", +] + +[[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.26" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ - "proc-macro2", + "proc-macro2 1.0.78", ] +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "rand" version = "0.7.3" @@ -1337,11 +2616,22 @@ checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" dependencies = [ "getrandom 0.1.16", "libc", - "rand_chacha", + "rand_chacha 0.2.2", "rand_core 0.5.1", "rand_hc", ] +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + [[package]] name = "rand_chacha" version = "0.2.2" @@ -1352,6 +2642,16 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + [[package]] name = "rand_core" version = "0.5.1" @@ -1367,7 +2667,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.9", + "getrandom 0.2.12", ] [[package]] @@ -1412,13 +2712,45 @@ dependencies = [ "num_cpus", ] +[[package]] +name = "rcgen" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" +dependencies = [ + "pem", + "ring 0.16.20", + "time", + "yasna", +] + [[package]] name = "redox_syscall" -version = "0.2.13" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_users" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" +checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" dependencies = [ - "bitflags", + "getrandom 0.2.12", + "libredox", + "thiserror", ] [[package]] @@ -1434,45 +2766,238 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" - -[[package]] -name = "rustc-hash" -version = "1.1.0" +version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] -name = "rustc_version" -version = "0.3.3" +name = "rend" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" dependencies = [ - "semver 0.11.0", + "bytecheck", ] [[package]] -name = "rustc_version" -version = "0.4.0" +name = "reqwest" +version = "0.11.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "13293b639a097af28fc8a90f22add145a9c954e49d77da06263d58cf44d5fb91" dependencies = [ - "semver 1.0.18", -] - + "async-compression", + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-rustls", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls", + "rustls-pemfile 1.0.4", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-rustls", + "tokio-util", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots", + "winreg", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.12", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "rkyv" +version = "0.7.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", +] + +[[package]] +name = "rpassword" +version = "6.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf099a1888612545b683d2661a1940089f6c2e5a8e38979b2159da876bfd956" +dependencies = [ + "libc", + "serde", + "serde_json", + "winapi", +] + +[[package]] +name = "rust_decimal" +version = "1.34.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39449a79f45e8da28c57c341891b69a183044b29518bb8f86dbac9df60bb7df" +dependencies = [ + "arrayvec 0.7.4", + "borsh 1.3.1", + "bytes", + "num-traits", + "rand 0.8.5", + "rkyv", + "serde", + "serde_json", +] + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom 7.1.3", +] + +[[package]] +name = "rustix" +version = "0.37.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f79bef90eb6d984c72722595b5b1348ab39275a5e5123faca6863bf07d75a4e0" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustls" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" +dependencies = [ + "log", + "ring 0.16.20", + "sct", + "webpki", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile 1.0.4", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + [[package]] name = "rustversion" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" -version = "1.0.5" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "safe-transmute" @@ -1480,41 +3005,71 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98a01dab6acf992653be49205bdd549f32f17cb2803e8eacf1560bf97259aae8" +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + [[package]] name = "scopeguard" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] -name = "semver" -version = "0.11.0" +name = "sct" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "semver-parser", + "ring 0.17.8", + "untrusted 0.9.0", ] [[package]] -name = "semver" -version = "1.0.18" +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "security-framework" +version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] [[package]] -name = "semver-parser" -version = "0.10.2" +name = "security-framework-sys" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" dependencies = [ - "pest", + "core-foundation-sys", + "libc", ] +[[package]] +name = "semver" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" + [[package]] name = "serde" -version = "1.0.159" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065" +checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" dependencies = [ "serde_derive", ] @@ -1530,13 +3085,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.159" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585" +checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.13", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.49", ] [[package]] @@ -1550,6 +3105,30 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_yaml" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" +dependencies = [ + "indexmap 1.9.3", + "ryu", + "serde", + "yaml-rust", +] + [[package]] name = "serum_dex" version = "0.5.6" @@ -1573,6 +3152,26 @@ dependencies = [ "without-alloc", ] +[[package]] +name = "sgx-quote" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1640577af7b81d10db340c4b31006b77972e3918f351eec4e65c389c8b58e21" +dependencies = [ + "nom 5.1.3", +] + +[[package]] +name = "sha-1" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + [[package]] name = "sha2" version = "0.9.9" @@ -1588,9 +3187,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -1611,9 +3210,9 @@ dependencies = [ [[package]] name = "sha3" -version = "0.10.4" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaedf34ed289ea47c2b741bb72e5357a209512d67bcd4bda44359e5bf0470f56" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ "digest 0.10.7", "keccak", @@ -1634,11 +3233,11 @@ version = "0.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3498d6ea2ba012f26ad3d79a19773ba8e1c7a69f14dec67e3ed51c723cc9f30a" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.78", + "quote 1.0.35", "shank_macro_impl", "shank_render", - "syn 1.0.92", + "syn 1.0.109", ] [[package]] @@ -1648,10 +3247,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271c0b0b47ef930d7455d11a02164e3f0e71704d639bcaa6581f23e4b2073227" dependencies = [ "anyhow", - "proc-macro2", - "quote", + "proc-macro2 1.0.78", + "quote 1.0.35", "serde", - "syn 1.0.92", + "syn 1.0.109", ] [[package]] @@ -1660,17 +3259,38 @@ version = "0.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "142e11124c70d1702424011209621551adf775988033dedea428ce4a21d3acdf" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.78", + "quote 1.0.35", "shank_macro_impl", ] +[[package]] +name = "shell-words" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + [[package]] name = "signature" version = "1.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +[[package]] +name = "simdutf8" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" + [[package]] name = "sized-chunks" version = "0.6.5" @@ -1681,109 +3301,373 @@ dependencies = [ "typenum", ] +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + [[package]] name = "smallvec" -version = "1.8.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" +checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" [[package]] -name = "solana-frozen-abi" +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "solana-account-decoder" version = "1.14.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b4953578272ac0fadec245e85e83ae86454611f0c0a7fff7d906835124bdcf" +checksum = "ec36d5c2ec5469dacc4fd2bdfcaaf4b253a4814d86d88686d50fd407cf7b3330" dependencies = [ - "ahash", - "blake3", - "block-buffer 0.9.0", + "Inflector", + "base64 0.13.1", + "bincode", "bs58 0.4.0", "bv", - "byteorder", - "cc", - "either", - "generic-array", - "getrandom 0.1.16", - "hashbrown 0.12.3", - "im", "lazy_static", - "log", - "memmap2", - "once_cell", - "rand_core 0.6.4", - "rustc_version 0.4.0", "serde", - "serde_bytes", "serde_derive", "serde_json", - "sha2 0.10.7", + "solana-address-lookup-table-program", + "solana-config-program", + "solana-sdk", + "solana-vote-program", + "spl-token", + "spl-token-2022", + "thiserror", + "zstd", +] + +[[package]] +name = "solana-address-lookup-table-program" +version = "1.14.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf23fb5a4ff0e902bf94fbc63ba51b10b1f86c6bca18574b583ec3baf6383a0b" +dependencies = [ + "bincode", + "bytemuck", + "log", + "num-derive", + "num-traits", + "rustc_version", + "serde", + "solana-frozen-abi", "solana-frozen-abi-macro", - "subtle", + "solana-program", + "solana-program-runtime", + "solana-sdk", "thiserror", ] [[package]] -name = "solana-frozen-abi-macro" +name = "solana-clap-utils" version = "1.14.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57892538250428ad3dc3cbe05f6cd75ad14f4f16734fcb91bc7cd5fbb63d6315" +checksum = "39e6537858df8634c4cf7e9e8a84a9f1967b8983bcb4e4833cad3ae200b7170d" dependencies = [ - "proc-macro2", - "quote", - "rustc_version 0.4.0", - "syn 1.0.92", + "chrono", + "clap 2.34.0", + "rpassword", + "solana-perf", + "solana-remote-wallet", + "solana-sdk", + "thiserror", + "tiny-bip39", + "uriparse", + "url", ] [[package]] -name = "solana-logger" +name = "solana-cli-config" version = "1.14.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06aa701c49493e93085dd1e800c05475baca15a9d4d527b59794f2ed0b66e055" +checksum = "2234deff9765c25fc6189322689d1b702490f4389680dfdef0af582856041844" dependencies = [ - "env_logger", + "dirs-next", "lazy_static", - "log", + "serde", + "serde_derive", + "serde_yaml", + "solana-clap-utils", + "solana-sdk", + "url", ] [[package]] -name = "solana-program" +name = "solana-client" version = "1.14.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f99052873619df68913cb8e92e28ff251a5483828925e87fa97ba15a9cbad51" +checksum = "e706f894fe68d518c125e27a7186d07a56f5b179d67c8fb2cf719cef8e1ee7cd" dependencies = [ - "base64 0.13.0", + "async-mutex", + "async-trait", + "base64 0.13.1", "bincode", - "bitflags", - "blake3", - "borsh", - "borsh-derive", "bs58 0.4.0", - "bv", - "bytemuck", - "cc", - "console_error_panic_hook", - "console_log", - "curve25519-dalek", - "getrandom 0.2.9", + "bytes", + "clap 2.34.0", + "crossbeam-channel", + "enum_dispatch", + "futures", + "futures-util", + "indexmap 1.9.3", + "indicatif", "itertools 0.10.5", - "js-sys", + "jsonrpc-core", "lazy_static", - "libc", - "libsecp256k1", "log", - "memoffset", + "quinn", + "quinn-proto", + "rand 0.7.3", + "rand_chacha 0.2.2", + "rayon", + "reqwest", + "rustls", + "semver", + "serde", + "serde_derive", + "serde_json", + "solana-account-decoder", + "solana-clap-utils", + "solana-faucet", + "solana-measure", + "solana-metrics", + "solana-net-utils", + "solana-sdk", + "solana-streamer", + "solana-transaction-status", + "solana-version", + "solana-vote-program", + "spl-token-2022", + "thiserror", + "tokio", + "tokio-stream", + "tokio-tungstenite", + "tungstenite", + "url", +] + +[[package]] +name = "solana-config-program" +version = "1.14.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c2d438fdfa4f5774c70fb0eeb2325caa073c838a229ef6a876c65c8703294" +dependencies = [ + "bincode", + "chrono", + "serde", + "serde_derive", + "solana-program-runtime", + "solana-sdk", +] + +[[package]] +name = "solana-faucet" +version = "1.14.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ba3e5e2acc09b2fcb54957d05c0943b194d48f825f879fc2cf5d255e2608b05" +dependencies = [ + "bincode", + "byteorder", + "clap 2.34.0", + "crossbeam-channel", + "log", + "serde", + "serde_derive", + "solana-clap-utils", + "solana-cli-config", + "solana-logger", + "solana-metrics", + "solana-sdk", + "solana-version", + "spl-memo", + "thiserror", + "tokio", +] + +[[package]] +name = "solana-frozen-abi" +version = "1.14.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b4953578272ac0fadec245e85e83ae86454611f0c0a7fff7d906835124bdcf" +dependencies = [ + "ahash", + "blake3", + "block-buffer 0.9.0", + "bs58 0.4.0", + "bv", + "byteorder", + "cc", + "either", + "generic-array", + "getrandom 0.1.16", + "hashbrown 0.12.3", + "im", + "lazy_static", + "log", + "memmap2", + "once_cell", + "rand_core 0.6.4", + "rustc_version", + "serde", + "serde_bytes", + "serde_derive", + "serde_json", + "sha2 0.10.8", + "solana-frozen-abi-macro", + "subtle", + "thiserror", +] + +[[package]] +name = "solana-frozen-abi-macro" +version = "1.14.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57892538250428ad3dc3cbe05f6cd75ad14f4f16734fcb91bc7cd5fbb63d6315" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "rustc_version", + "syn 1.0.109", +] + +[[package]] +name = "solana-logger" +version = "1.14.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06aa701c49493e93085dd1e800c05475baca15a9d4d527b59794f2ed0b66e055" +dependencies = [ + "env_logger", + "lazy_static", + "log", +] + +[[package]] +name = "solana-measure" +version = "1.14.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7300180957635b33c88bd6844a5dff4f1f5c6352d0861ee7845eab84185aa6a" +dependencies = [ + "log", + "solana-sdk", +] + +[[package]] +name = "solana-metrics" +version = "1.14.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2960981c4bbe9177dafe986542ba11a10afcae320f4201aa809cd5b650e202e1" +dependencies = [ + "crossbeam-channel", + "gethostname", + "lazy_static", + "log", + "reqwest", + "solana-sdk", +] + +[[package]] +name = "solana-net-utils" +version = "1.14.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31062ce5ddceb92bdb78df2eaf33e9889c1519e8a8d89baa783e2d08a76cfc62" +dependencies = [ + "bincode", + "clap 3.2.25", + "crossbeam-channel", + "log", + "nix", + "rand 0.7.3", + "serde", + "serde_derive", + "socket2", + "solana-logger", + "solana-sdk", + "solana-version", + "tokio", + "url", +] + +[[package]] +name = "solana-perf" +version = "1.14.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b2b84a3d7a24523b9117c0ae4608f1e561ae492638acea2bb2960a0c0c8eb6" +dependencies = [ + "ahash", + "bincode", + "bv", + "caps", + "curve25519-dalek", + "dlopen", + "dlopen_derive", + "fnv", + "lazy_static", + "libc", + "log", + "nix", + "rand 0.7.3", + "rayon", + "serde", + "solana-metrics", + "solana-rayon-threadlimit", + "solana-sdk", + "solana-vote-program", +] + +[[package]] +name = "solana-program" +version = "1.14.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f99052873619df68913cb8e92e28ff251a5483828925e87fa97ba15a9cbad51" +dependencies = [ + "base64 0.13.1", + "bincode", + "bitflags 1.3.2", + "blake3", + "borsh 0.9.3", + "borsh-derive 0.9.3", + "bs58 0.4.0", + "bv", + "bytemuck", + "cc", + "console_error_panic_hook", + "console_log", + "curve25519-dalek", + "getrandom 0.2.12", + "itertools 0.10.5", + "js-sys", + "lazy_static", + "libc", + "libsecp256k1", + "log", + "memoffset 0.6.5", "num-derive", "num-traits", "parking_lot", - "rand", - "rand_chacha", - "rustc_version 0.4.0", + "rand 0.7.3", + "rand_chacha 0.2.2", + "rustc_version", "rustversion", "serde", "serde_bytes", "serde_derive", "serde_json", - "sha2 0.10.7", - "sha3 0.10.4", + "sha2 0.10.8", + "sha3 0.10.8", "solana-frozen-abi", "solana-frozen-abi-macro", "solana-sdk-macro", @@ -1793,6 +3677,62 @@ dependencies = [ "zeroize", ] +[[package]] +name = "solana-program-runtime" +version = "1.14.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d57d0b6ef85b50f9ad6b9a75fc9d5051dc26f8b1a4ddf03656e3d603e139eb3" +dependencies = [ + "base64 0.13.1", + "bincode", + "eager", + "enum-iterator", + "itertools 0.10.5", + "libc", + "libloading", + "log", + "num-derive", + "num-traits", + "rand 0.7.3", + "rustc_version", + "serde", + "solana-frozen-abi", + "solana-frozen-abi-macro", + "solana-measure", + "solana-metrics", + "solana-sdk", + "thiserror", +] + +[[package]] +name = "solana-rayon-threadlimit" +version = "1.14.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10e1d068ba8080ca1e41703c600cc9b263ff7ce26b6811cd83221723ae0d10ae" +dependencies = [ + "lazy_static", + "num_cpus", +] + +[[package]] +name = "solana-remote-wallet" +version = "1.14.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "661cd486da7419134663f1c3684d71d3fd6d13b8e557da23070f4c920b1d2baa" +dependencies = [ + "console", + "dialoguer", + "log", + "num-derive", + "num-traits", + "parking_lot", + "qstring", + "semver", + "solana-sdk", + "thiserror", + "uriparse", +] + [[package]] name = "solana-sdk" version = "1.14.16" @@ -1800,10 +3740,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edb47da3e18cb669f6ace0b40cee0610e278903783e0c9f7fce1e1beb881a1b7" dependencies = [ "assert_matches", - "base64 0.13.0", + "base64 0.13.1", "bincode", - "bitflags", - "borsh", + "bitflags 1.3.2", + "borsh 0.9.3", "bs58 0.4.0", "bytemuck", "byteorder", @@ -1824,16 +3764,16 @@ dependencies = [ "num-traits", "pbkdf2 0.11.0", "qstring", - "rand", - "rand_chacha", - "rustc_version 0.4.0", + "rand 0.7.3", + "rand_chacha 0.2.2", + "rustc_version", "rustversion", "serde", "serde_bytes", "serde_derive", "serde_json", - "sha2 0.10.7", - "sha3 0.10.4", + "sha2 0.10.8", + "sha3 0.10.8", "solana-frozen-abi", "solana-frozen-abi-macro", "solana-logger", @@ -1851,10 +3791,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d41a09b9cecd0a4df63c78a192adee99ebf2d3757c19713a68246e1d9789c7c" dependencies = [ "bs58 0.4.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.78", + "quote 1.0.35", "rustversion", - "syn 1.0.92", + "syn 1.0.109", ] [[package]] @@ -1863,6 +3803,101 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e0461f3afb29d8591300b3dd09b5472b3772d65688a2826ad960b8c0d5fa605" +[[package]] +name = "solana-streamer" +version = "1.14.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2ffb2c6918eda6aa8b18219790b7a4e4d74914aeae97cb1a0e09fdb943b18cc" +dependencies = [ + "crossbeam-channel", + "futures-util", + "histogram", + "indexmap 1.9.3", + "itertools 0.10.5", + "libc", + "log", + "nix", + "pem", + "percentage", + "pkcs8", + "quinn", + "rand 0.7.3", + "rcgen", + "rustls", + "solana-metrics", + "solana-perf", + "solana-sdk", + "thiserror", + "tokio", + "x509-parser", +] + +[[package]] +name = "solana-transaction-status" +version = "1.14.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df1a6ee396d436ae4ee36350043c3cb34ad66b7515f045c1e5006695559d88ac" +dependencies = [ + "Inflector", + "base64 0.13.1", + "bincode", + "borsh 0.9.3", + "bs58 0.4.0", + "lazy_static", + "log", + "serde", + "serde_derive", + "serde_json", + "solana-account-decoder", + "solana-address-lookup-table-program", + "solana-measure", + "solana-metrics", + "solana-sdk", + "solana-vote-program", + "spl-associated-token-account", + "spl-memo", + "spl-token", + "spl-token-2022", + "thiserror", +] + +[[package]] +name = "solana-version" +version = "1.14.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d177dc97f7facd8fbc3148f3d44a9ff5bbbc72c1db7e2889dc4911ae641cea8a" +dependencies = [ + "log", + "rustc_version", + "semver", + "serde", + "serde_derive", + "solana-frozen-abi", + "solana-frozen-abi-macro", + "solana-sdk", +] + +[[package]] +name = "solana-vote-program" +version = "1.14.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6280815d28c90ea8f51c8eb2026258e8693cab5a8456ee7b207a791b20f9c576" +dependencies = [ + "bincode", + "log", + "num-derive", + "num-traits", + "rustc_version", + "serde", + "serde_derive", + "solana-frozen-abi", + "solana-frozen-abi-macro", + "solana-metrics", + "solana-program-runtime", + "solana-sdk", + "thiserror", +] + [[package]] name = "solana-zk-token-sdk" version = "1.14.16" @@ -1871,11 +3906,11 @@ checksum = "7ab38abd096769f79fd8e3fe8465070f04742395db724606a5263c8ebc215567" dependencies = [ "aes-gcm-siv", "arrayref", - "base64 0.13.0", + "base64 0.13.1", "bincode", "bytemuck", "byteorder", - "cipher 0.4.3", + "cipher 0.4.4", "curve25519-dalek", "getrandom 0.1.16", "itertools 0.10.5", @@ -1883,7 +3918,7 @@ dependencies = [ "merlin", "num-derive", "num-traits", - "rand", + "rand 0.7.3", "serde", "serde_json", "sha3 0.9.1", @@ -1894,6 +3929,28 @@ dependencies = [ "zeroize", ] +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "spki" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" +dependencies = [ + "base64ct", + "der", +] + [[package]] name = "spl-associated-token-account" version = "1.1.2" @@ -1901,7 +3958,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbc000f0fdf1f12f99d77d398137c1751345b18c88258ce0f99b7872cf6c9bd6" dependencies = [ "assert_matches", - "borsh", + "borsh 0.9.3", "num-derive", "num-traits", "solana-program", @@ -1953,138 +4010,454 @@ dependencies = [ ] [[package]] -name = "static_assertions" -version = "1.1.0" +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[package]] +name = "superslice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab16ced94dbd8a46c82fd81e3ed9a8727dac2977ea869d217bcc4ea1f122e81f" + +[[package]] +name = "switchboard-common" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea14d8fd81943403ad32221a234b41cab6faf740c9e62069e672af53079cacc5" +dependencies = [ + "envy", + "getrandom 0.2.12", + "hex", + "log", + "serde", + "serde_json", + "sgx-quote", + "sha2 0.10.8", + "sha3 0.9.1", +] + +[[package]] +name = "switchboard-solana" +version = "0.27.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d039ea8750d2ebedf89ee3ea4c31ed0abddaeb8389d785ec05e263663ef8e0a" +dependencies = [ + "anchor-client", + "anchor-lang", + "anchor-spl", + "bincode", + "bytemuck", + "chrono", + "cron", + "hex", + "rust_decimal", + "sgx-quote", + "solana-address-lookup-table-program", + "solana-client", + "solana-program", + "superslice", + "switchboard-common", + "tokio", + "url", +] + +[[package]] +name = "syn" +version = "0.15.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "unicode-xid 0.1.0", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.49" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "unicode-ident", +] + +[[package]] +name = "syn_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" +dependencies = [ + "proc-macro-error", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.49", +] + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", + "unicode-xid 0.2.4", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tempfile" +version = "3.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" +dependencies = [ + "autocfg", + "cfg-if", + "fastrand", + "redox_syscall 0.3.5", + "rustix", + "windows-sys 0.48.0", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "textwrap" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" + +[[package]] +name = "thiserror" +version = "1.0.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.49", +] + +[[package]] +name = "time" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53250a3b3fed8ff8fd988587d8925d26a83ac3845d9e03b220b37f34c2b8d6c2" +dependencies = [ + "itoa", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" + +[[package]] +name = "time-macros" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a460aeb8de6dcb0f381e1ee05f1cd56fcf5a5f6eb8187ff3d8f0b11078d38b7c" +dependencies = [ + "time-core", +] + +[[package]] +name = "tiny-bip39" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffc59cb9dfc85bb312c3a78fd6aa8a8582e310b0fa885d5bb877f6dcc601839d" +dependencies = [ + "anyhow", + "hmac 0.8.1", + "once_cell", + "pbkdf2 0.4.0", + "rand 0.7.3", + "rustc-hash", + "sha2 0.9.9", + "thiserror", + "unicode-normalization", + "wasm-bindgen", + "zeroize", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "token-faucet" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "anchor-spl", + "bytemuck", + "solana-program", +] + +[[package]] +name = "tokio" +version = "1.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c51a52ed6686dd62c320f9b89299e9dfb46f730c7a48e635c19f21d116cb1439" +dependencies = [ + "bytes", + "libc", + "memchr", + "mio", + "num_cpus", + "once_cell", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "winapi", +] + +[[package]] +name = "tokio-macros" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", +] [[package]] -name = "subtle" -version = "2.4.1" +name = "tokio-rustls" +version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +dependencies = [ + "rustls", + "tokio", + "webpki", +] [[package]] -name = "syn" -version = "1.0.92" +name = "tokio-stream" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ff7c592601f11445996a06f8ad0c27f094a58857c2f89e97974ab9235b92c52" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", + "futures-core", + "pin-project-lite", + "tokio", ] [[package]] -name = "syn" -version = "2.0.13" +name = "tokio-tungstenite" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec" +checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181" dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", + "futures-util", + "log", + "rustls", + "tokio", + "tokio-rustls", + "tungstenite", + "webpki", + "webpki-roots", ] [[package]] -name = "termcolor" -version = "1.2.0" +name = "tokio-util" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +checksum = "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45" dependencies = [ - "winapi-util", + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", ] [[package]] -name = "thiserror" -version = "1.0.38" +name = "toml" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" dependencies = [ - "thiserror-impl", + "serde", ] [[package]] -name = "thiserror-impl" -version = "1.0.38" +name = "toml_datetime" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.92", -] +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" [[package]] -name = "tiny-bip39" -version = "0.8.2" +name = "toml_edit" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc59cb9dfc85bb312c3a78fd6aa8a8582e310b0fa885d5bb877f6dcc601839d" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "anyhow", - "hmac 0.8.1", - "once_cell", - "pbkdf2 0.4.0", - "rand", - "rustc-hash", - "sha2 0.9.9", - "thiserror", - "unicode-normalization", - "wasm-bindgen", - "zeroize", + "indexmap 2.2.3", + "toml_datetime", + "winnow", ] [[package]] -name = "tinyvec" -version = "1.6.0" +name = "tower-service" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] -name = "tinyvec_macros" -version = "0.1.1" +name = "tracing" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] [[package]] -name = "token-faucet" -version = "0.1.0" +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ - "anchor-lang", - "anchor-spl", - "bytemuck", - "solana-program", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.49", ] [[package]] -name = "toml" -version = "0.5.8" +name = "tracing-core" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ - "serde", + "once_cell", ] [[package]] -name = "typenum" -version = "1.15.0" +name = "try-lock" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] -name = "ucd-trie" -version = "0.1.4" +name = "tungstenite" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e27992fd6a8c29ee7eef28fc78349aa244134e10ad447ce3b9f0ac0ed0fa4ce0" +dependencies = [ + "base64 0.13.1", + "byteorder", + "bytes", + "http", + "httparse", + "log", + "rand 0.8.5", + "rustls", + "sha-1", + "thiserror", + "url", + "utf-8", + "webpki", + "webpki-roots", +] + +[[package]] +name = "typenum" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89570599c4fe5585de2b388aab47e99f7fa4e9238a1399f707a02e356058141c" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "uint" -version = "0.9.1" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6470ab50f482bde894a037a57064480a246dbfdd5960bd65a44824693f08da5f" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" dependencies = [ "byteorder", "crunchy", @@ -2092,11 +4465,17 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + [[package]] name = "unicode-ident" -version = "1.0.8" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" @@ -2109,15 +4488,27 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.7.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" + +[[package]] +name = "unicode-width" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" [[package]] name = "unicode-xid" -version = "0.2.2" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + +[[package]] +name = "unicode-xid" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] name = "universal-hash" @@ -2129,6 +4520,27 @@ dependencies = [ "subtle", ] +[[package]] +name = "unsize" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fa7a7a734c1a5664a662ddcea0b6c9472a21da8888c957c7f1eaa09dba7a939" +dependencies = [ + "autocfg", +] + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "uriparse" version = "0.6.4" @@ -2139,11 +4551,49 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "url" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "uuid" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + [[package]] name = "version_check" -version = "0.9.3" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "want" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] [[package]] name = "wasi" @@ -2159,9 +4609,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.84" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" +checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2169,58 +4619,89 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.84" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" +checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2", - "quote", - "syn 1.0.92", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.49", "wasm-bindgen-shared", ] +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "wasm-bindgen-macro" -version = "0.2.84" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" +checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" dependencies = [ - "quote", + "quote 1.0.35", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.84" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" +checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.92", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.49", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.84" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" +checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" [[package]] name = "web-sys" -version = "0.3.57" +version = "0.3.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283" +checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" dependencies = [ "js-sys", "wasm-bindgen", ] +[[package]] +name = "webpki" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "webpki-roots" +version = "0.22.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +dependencies = [ + "webpki", +] + [[package]] name = "winapi" version = "0.3.9" @@ -2239,9 +4720,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ "winapi", ] @@ -2252,56 +4733,218 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.0", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + [[package]] name = "windows-sys" -version = "0.36.1" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" dependencies = [ - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + [[package]] name = "windows_aarch64_msvc" -version = "0.36.1" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.36.1" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.36.1" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.36.1" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.36.1" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +dependencies = [ + "winapi", +] [[package]] name = "without-alloc" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e34736feff52a0b3e5680927e947a4d8fac1f0b80dc8120b080dd8de24d75e2" +checksum = "375db0478b203b950ef10d1cce23cdbe5f30c2454fd9e7673ff56656df23adbb" dependencies = [ "alloc-traits", + "unsize", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "x509-parser" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" +dependencies = [ + "asn1-rs", + "base64 0.13.1", + "data-encoding", + "der-parser", + "lazy_static", + "nom 7.1.3", + "oid-registry", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "yaml-rust" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "yasna" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" +dependencies = [ + "time", ] [[package]] @@ -2319,7 +4962,37 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.13", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.49", +] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.8+zstd.1.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c" +dependencies = [ + "cc", + "libc", + "pkg-config", ] diff --git a/programs/drift/Cargo.toml b/programs/drift/Cargo.toml index a7db7faf8..702a89216 100644 --- a/programs/drift/Cargo.toml +++ b/programs/drift/Cargo.toml @@ -36,6 +36,8 @@ phoenix-v1 = { git = "https://github.com/drift-labs/phoenix-v1", rev = "bf6b84", solana-security-txt = "1.1.0" static_assertions = "1.1.0" drift-macros = { git = "https://github.com/drift-labs/drift-macros.git", rev = "c57d87" } +switchboard-solana = "0.27.26" +getrandom = { version = "0.2.2", features = ["custom"] } [dev-dependencies] bytes = "1.2.0" diff --git a/programs/drift/src/ids.rs b/programs/drift/src/ids.rs index 893805e3d..3cd700470 100644 --- a/programs/drift/src/ids.rs +++ b/programs/drift/src/ids.rs @@ -6,6 +6,11 @@ pub mod pyth_program { declare_id!("gSbePebfvPy7tRqimPoVecS2UsBvYv46ynrzWocc92s"); } +pub mod switchboard_program { + use solana_program::declare_id; + declare_id!("SW1TCH7qEPTdLsDHRgPuMQjbQxKdH2aBStViMFnt64f"); +} + pub mod bonk_oracle { use solana_program::declare_id; #[cfg(feature = "mainnet-beta")] diff --git a/programs/drift/src/instructions/admin.rs b/programs/drift/src/instructions/admin.rs index e73b8ef8b..13cf3f3bc 100644 --- a/programs/drift/src/instructions/admin.rs +++ b/programs/drift/src/instructions/admin.rs @@ -34,8 +34,8 @@ use crate::state::fulfillment_params::serum::SerumContext; use crate::state::fulfillment_params::serum::SerumV3FulfillmentConfig; use crate::state::insurance_fund_stake::ProtocolIfSharesTransferConfig; use crate::state::oracle::{ - get_oracle_price, get_pyth_price, HistoricalIndexData, HistoricalOracleData, OraclePriceData, - OracleSource, + get_oracle_price, get_pyth_price, get_switchboard_price, HistoricalIndexData, + HistoricalOracleData, OraclePriceData, OracleSource, }; use crate::state::paused_operations::{PerpOperation, SpotOperation}; use crate::state::perp_market::{ @@ -568,8 +568,13 @@ pub fn handle_initialize_perp_market( (oracle_price, oracle_delay, QUOTE_PRECISION_I64) } OracleSource::Switchboard => { - msg!("Switchboard oracle cant be used for perp market"); - return Err(ErrorCode::InvalidOracle.into()); + let OraclePriceData { + price: oracle_price, + delay: oracle_delay, + .. + } = get_switchboard_price(&ctx.accounts.oracle, clock_slot)?; + + (oracle_price, oracle_delay, oracle_price) } OracleSource::QuoteAsset => { msg!("Quote asset oracle cant be used for perp market"); @@ -1101,7 +1106,7 @@ pub fn handle_update_amm_oracle_twap(ctx: Context) -> Result<()> { let perp_market = &mut load_mut!(ctx.accounts.perp_market)?; let price_oracle = &ctx.accounts.oracle; - let oracle_twap = perp_market.amm.get_oracle_twap(price_oracle)?; + let oracle_twap = perp_market.amm.get_oracle_twap(price_oracle, clock.slot)?; if let Some(oracle_twap) = oracle_twap { let oracle_mark_gap_before = perp_market diff --git a/programs/drift/src/state/oracle.rs b/programs/drift/src/state/oracle.rs index 5582fa9b0..35a6553e5 100644 --- a/programs/drift/src/state/oracle.rs +++ b/programs/drift/src/state/oracle.rs @@ -4,6 +4,7 @@ use crate::error::{DriftResult, ErrorCode}; use crate::math::casting::Cast; use crate::math::constants::{PRICE_PRECISION, PRICE_PRECISION_I64, PRICE_PRECISION_U64}; use crate::math::safe_math::SafeMath; +use switchboard_solana::{AggregatorAccountData, SwitchboardDecimal}; use crate::math::safe_unwrap::SafeUnwrap; use crate::validate; @@ -146,10 +147,7 @@ pub fn get_oracle_price( OracleSource::Pyth1K => get_pyth_price(price_oracle, clock_slot, 1000), OracleSource::Pyth1M => get_pyth_price(price_oracle, clock_slot, 1000000), OracleSource::PythStableCoin => get_pyth_stable_coin_price(price_oracle, clock_slot), - OracleSource::Switchboard => { - msg!("Switchboard oracle not yet supported"); - Err(crate::error::ErrorCode::InvalidOracle) - } + OracleSource::Switchboard => get_switchboard_price(price_oracle, clock_slot), OracleSource::QuoteAsset => Ok(OraclePriceData { price: PRICE_PRECISION_I64, confidence: 1, @@ -239,46 +237,63 @@ pub fn get_pyth_stable_coin_price( Ok(oracle_price_data) } -// pub fn get_switchboard_price( -// _price_oracle: &AccountInfo, -// _clock_slot: u64, -// ) -> DriftResult { -// updating solana/anchor cause this to make compiler complan -// fix when we're using switchboard again -// let aggregator_data = AggregatorAccountData::new(price_oracle) -// .or(Err(crate::error::ErrorCode::UnableToLoadOracle))?; -// -// let price = convert_switchboard_decimal(&aggregator_data.latest_confirmed_round.result)?; -// let confidence = -// convert_switchboard_decimal(&aggregator_data.latest_confirmed_round.std_deviation)?; -// -// // std deviation should always be positive, if we get a negative make it u128::MAX so it's flagged as bad value -// let confidence = if confidence < 0 { -// u128::MAX -// } else { -// let price_10bps = price -// .unsigned_abs() -// .safe_div(1000) -// ?; -// max(confidence.unsigned_abs(), price_10bps) -// }; -// -// let delay: i64 = cast_to_i64(clock_slot)? -// .safe_sub(cast( -// aggregator_data.latest_confirmed_round.round_open_slot, -// )?) -// ?; -// -// let has_sufficient_number_of_data_points = -// aggregator_data.latest_confirmed_round.num_success >= aggregator_data.min_oracle_results; -// -// Ok(OraclePriceData { -// price, -// confidence, -// delay, -// has_sufficient_number_of_data_points, -// }) -// } +pub fn get_switchboard_price( + price_oracle: &AccountInfo, + clock_slot: u64, +) -> DriftResult { + let aggregator_data_loader: AccountLoader = + AccountLoader::try_from(price_oracle).or(Err(ErrorCode::UnableToLoadOracle))?; + let aggregator_data = aggregator_data_loader + .load() + .or(Err(ErrorCode::UnableToLoadOracle))?; + + let price = convert_switchboard_decimal(&aggregator_data.latest_confirmed_round.result)? + .cast::()?; + let confidence = + convert_switchboard_decimal(&aggregator_data.latest_confirmed_round.std_deviation)? + .cast::()?; + + // std deviation should always be positive, if we get a negative make it u128::MAX so it's flagged as bad value + let confidence = if confidence < 0 { + u64::MAX + } else { + let price_10bps = price.unsigned_abs().safe_div(1000)?; + confidence.unsigned_abs().max(price_10bps) + }; + + let delay = clock_slot.cast::()?.safe_sub( + aggregator_data + .latest_confirmed_round + .round_open_slot + .cast()?, + )?; + + let has_sufficient_number_of_data_points = + aggregator_data.latest_confirmed_round.num_success >= aggregator_data.min_oracle_results; + + Ok(OraclePriceData { + price, + confidence, + delay, + has_sufficient_number_of_data_points, + }) +} + +/// Given a decimal number represented as a mantissa (the digits) plus an +/// original_precision (10.pow(some number of decimals)), scale the +/// mantissa/digits to make sense with a new_precision. +fn convert_switchboard_decimal(switchboard_decimal: &SwitchboardDecimal) -> DriftResult { + let switchboard_precision = 10_u128.pow(switchboard_decimal.scale); + if switchboard_precision > PRICE_PRECISION { + switchboard_decimal + .mantissa + .safe_div((switchboard_precision / PRICE_PRECISION) as i128) + } else { + switchboard_decimal + .mantissa + .safe_mul((PRICE_PRECISION / switchboard_precision) as i128) + } +} #[derive(Clone, Copy)] pub struct StrictOraclePrice { diff --git a/programs/drift/src/state/oracle/tests.rs b/programs/drift/src/state/oracle/tests.rs index ecee7a963..4243ca24d 100644 --- a/programs/drift/src/state/oracle/tests.rs +++ b/programs/drift/src/state/oracle/tests.rs @@ -29,7 +29,7 @@ fn pyth_1k() { ..AMM::default() }; - let twap = amm.get_oracle_twap(&oracle_account_info).unwrap(); + let twap = amm.get_oracle_twap(&oracle_account_info, 0).unwrap(); assert_eq!(twap, Some(839)); } @@ -55,6 +55,6 @@ fn pyth_1m() { ..AMM::default() }; - let twap = amm.get_oracle_twap(&oracle_account_info).unwrap(); + let twap = amm.get_oracle_twap(&oracle_account_info, 0).unwrap(); assert_eq!(twap, Some(839400)); } diff --git a/programs/drift/src/state/oracle_map.rs b/programs/drift/src/state/oracle_map.rs index d03caff89..d598802fd 100644 --- a/programs/drift/src/state/oracle_map.rs +++ b/programs/drift/src/state/oracle_map.rs @@ -1,5 +1,7 @@ use crate::error::{DriftResult, ErrorCode}; -use crate::ids::{bonk_oracle, pepe_oracle, pyth_program, usdc_oracle, usdt_oracle_mainnet}; +use crate::ids::{ + bonk_oracle, pepe_oracle, pyth_program, switchboard_program, usdc_oracle, usdt_oracle_mainnet, +}; use crate::math::constants::PRICE_PRECISION_I64; use crate::math::oracle::{oracle_validity, OracleValidity}; use crate::state::oracle::{get_oracle_price, OraclePriceData, OracleSource}; @@ -183,6 +185,18 @@ impl<'a> OracleMap<'a> { ); continue; + } else if account_info.owner == &switchboard_program::id() { + let account_info = account_info_iter.next().safe_unwrap()?; + let pubkey = account_info.key(); + + let oracle_source = OracleSource::Switchboard; + oracles.insert( + pubkey, + AccountInfoAndOracleSource { + account_info: account_info.clone(), + oracle_source, + }, + ); } break; @@ -231,6 +245,17 @@ impl<'a> OracleMap<'a> { oracle_source, }, ); + } else if account_info.owner == &switchboard_program::id() { + let pubkey = account_info.key(); + + let oracle_source = OracleSource::Switchboard; + oracles.insert( + pubkey, + AccountInfoAndOracleSource { + account_info: account_info.clone(), + oracle_source, + }, + ); } else if account_info.key() != Pubkey::default() { return Err(ErrorCode::InvalidOracle); } diff --git a/programs/drift/src/state/perp_market.rs b/programs/drift/src/state/perp_market.rs index 8dd5b5358..0d4bdc58e 100644 --- a/programs/drift/src/state/perp_market.rs +++ b/programs/drift/src/state/perp_market.rs @@ -26,7 +26,7 @@ use crate::math::safe_math::SafeMath; use crate::math::stats; use crate::state::events::OrderActionExplanation; -use crate::state::oracle::{HistoricalOracleData, OracleSource}; +use crate::state::oracle::{get_switchboard_price, HistoricalOracleData, OracleSource}; use crate::state::spot_market::{AssetTier, SpotBalance, SpotBalanceType}; use crate::state::traits::{MarketIndexOffset, Size}; use borsh::{BorshDeserialize, BorshSerialize}; @@ -1200,14 +1200,18 @@ impl AMM { Ok(can_lower) } - pub fn get_oracle_twap(&self, price_oracle: &AccountInfo) -> DriftResult> { + pub fn get_oracle_twap( + &self, + price_oracle: &AccountInfo, + slot: u64, + ) -> DriftResult> { match self.oracle_source { OracleSource::Pyth | OracleSource::PythStableCoin => { Ok(Some(self.get_pyth_twap(price_oracle, 1)?)) } OracleSource::Pyth1K => Ok(Some(self.get_pyth_twap(price_oracle, 1000)?)), OracleSource::Pyth1M => Ok(Some(self.get_pyth_twap(price_oracle, 1000000)?)), - OracleSource::Switchboard => Ok(None), + OracleSource::Switchboard => Ok(Some(get_switchboard_price(price_oracle, slot)?.price)), OracleSource::QuoteAsset => { msg!("Can't get oracle twap for quote asset"); Err(ErrorCode::DefaultError) diff --git a/sdk/src/factory/oracleClient.ts b/sdk/src/factory/oracleClient.ts index 5b32dd13b..724fec726 100644 --- a/sdk/src/factory/oracleClient.ts +++ b/sdk/src/factory/oracleClient.ts @@ -5,6 +5,7 @@ import { PythClient } from '../oracles/pythClient'; // import { SwitchboardClient } from '../oracles/switchboardClient'; import { QuoteAssetOracleClient } from '../oracles/quoteAssetOracleClient'; import { BN } from '@coral-xyz/anchor'; +import { SwitchboardClient } from '../oracles/switchboardClient'; export function getOracleClient( oracleSource: OracleSource, @@ -26,9 +27,9 @@ export function getOracleClient( return new PythClient(connection, undefined, true); } - // if (isVariant(oracleSource, 'switchboard')) { - // return new SwitchboardClient(connection); - // } + if (isVariant(oracleSource, 'switchboard')) { + return new SwitchboardClient(connection); + } if (isVariant(oracleSource, 'quoteAsset')) { return new QuoteAssetOracleClient(); diff --git a/sdk/src/idl/switchboard.json b/sdk/src/idl/switchboard.json new file mode 100644 index 000000000..de5deb666 --- /dev/null +++ b/sdk/src/idl/switchboard.json @@ -0,0 +1,8354 @@ +{ + "version": "0.1.0", + "name": "switchboard_v2", + "instructions": [ + { + "name": "viewVersion", + "accounts": [], + "args": [] + }, + { + "name": "aggregatorClose", + "accounts": [ + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "aggregator", + "isMut": true, + "isSigner": false + }, + { + "name": "permission", + "isMut": true, + "isSigner": false + }, + { + "name": "lease", + "isMut": true, + "isSigner": false + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleQueue", + "isMut": false, + "isSigner": false + }, + { + "name": "queueAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "solDest", + "isMut": false, + "isSigner": false + }, + { + "name": "escrowDest", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "crank", + "isMut": true, + "isSigner": false, + "isOptional": true, + "docs": [ + "Optional accounts" + ] + }, + { + "name": "dataBuffer", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "slidingWindow", + "isMut": true, + "isSigner": false, + "isOptional": true + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "AggregatorCloseParams" + } + } + ] + }, + { + "name": "setBumps", + "accounts": [ + { + "name": "state", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "SetBumpsParams" + } + } + ] + }, + { + "name": "aggregatorAddJob", + "accounts": [ + { + "name": "aggregator", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "job", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "AggregatorAddJobParams" + } + } + ] + }, + { + "name": "aggregatorInit", + "accounts": [ + { + "name": "aggregator", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": false + }, + { + "name": "queue", + "isMut": false, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "AggregatorInitParams" + } + } + ] + }, + { + "name": "aggregatorFunctionUpsert", + "accounts": [ + { + "name": "aggregator", + "isMut": true, + "isSigner": false + }, + { + "name": "function", + "isMut": false, + "isSigner": false + }, + { + "name": "functionEnclaveSigner", + "isMut": false, + "isSigner": true + }, + { + "name": "verifier", + "isMut": false, + "isSigner": false + }, + { + "name": "payer", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "AggregatorFunctionUpsertParams" + } + } + ] + }, + { + "name": "aggregatorLock", + "accounts": [ + { + "name": "aggregator", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "AggregatorLockParams" + } + } + ] + }, + { + "name": "aggregatorOpenRound", + "accounts": [ + { + "name": "aggregator", + "isMut": true, + "isSigner": false + }, + { + "name": "lease", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleQueue", + "isMut": true, + "isSigner": false + }, + { + "name": "queueAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "permission", + "isMut": true, + "isSigner": false + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "payoutWallet", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "dataBuffer", + "isMut": false, + "isSigner": false + }, + { + "name": "mint", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "AggregatorOpenRoundParams" + } + } + ] + }, + { + "name": "aggregatorRemoveJob", + "accounts": [ + { + "name": "aggregator", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "job", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "AggregatorRemoveJobParams" + } + } + ] + }, + { + "name": "aggregatorSaveResult", + "accounts": [ + { + "name": "aggregator", + "isMut": true, + "isSigner": false + }, + { + "name": "oracle", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "oracleQueue", + "isMut": false, + "isSigner": false + }, + { + "name": "queueAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "feedPermission", + "isMut": true, + "isSigner": false + }, + { + "name": "oraclePermission", + "isMut": false, + "isSigner": false + }, + { + "name": "lease", + "isMut": true, + "isSigner": false + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "historyBuffer", + "isMut": true, + "isSigner": false + }, + { + "name": "mint", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "AggregatorSaveResultParams" + } + } + ] + }, + { + "name": "aggregatorSaveResultV2", + "accounts": [ + { + "name": "aggregator", + "isMut": true, + "isSigner": false + }, + { + "name": "oracle", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "oracleQueue", + "isMut": false, + "isSigner": false + }, + { + "name": "queueAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "feedPermission", + "isMut": true, + "isSigner": false + }, + { + "name": "oraclePermission", + "isMut": false, + "isSigner": false + }, + { + "name": "lease", + "isMut": true, + "isSigner": false + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "historyBuffer", + "isMut": true, + "isSigner": false + }, + { + "name": "mint", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "AggregatorSaveResultParams" + } + } + ] + }, + { + "name": "aggregatorTeeSaveResult", + "accounts": [ + { + "name": "aggregator", + "isMut": true, + "isSigner": false + }, + { + "name": "oracle", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "oracleQueue", + "isMut": false, + "isSigner": false + }, + { + "name": "queueAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "feedPermission", + "isMut": true, + "isSigner": false + }, + { + "name": "oraclePermission", + "isMut": false, + "isSigner": false + }, + { + "name": "lease", + "isMut": true, + "isSigner": false + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "historyBuffer", + "isMut": true, + "isSigner": false + }, + { + "name": "mint", + "isMut": false, + "isSigner": false + }, + { + "name": "slider", + "isMut": true, + "isSigner": false + }, + { + "name": "quote", + "isMut": false, + "isSigner": true + }, + { + "name": "rewardWallet", + "isMut": true, + "isSigner": false + }, + { + "name": "payer", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "AggregatorTeeSaveResultParams" + } + } + ] + }, + { + "name": "aggregatorSetAuthority", + "accounts": [ + { + "name": "aggregator", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "newAuthority", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "AggregatorSetAuthorityParams" + } + } + ] + }, + { + "name": "aggregatorSetConfig", + "accounts": [ + { + "name": "aggregator", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "AggregatorSetConfigParams" + } + } + ] + }, + { + "name": "aggregatorSetResolutionMode", + "accounts": [ + { + "name": "aggregator", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "slidingWindow", + "isMut": true, + "isSigner": false + }, + { + "name": "payer", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "AggregatorSetResolutionModeParams" + } + } + ] + }, + { + "name": "aggregatorSetHistoryBuffer", + "accounts": [ + { + "name": "aggregator", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "buffer", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "AggregatorSetHistoryBufferParams" + } + } + ] + }, + { + "name": "aggregatorSetQueue", + "accounts": [ + { + "name": "aggregator", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "queue", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "AggregatorSetQueueParams" + } + } + ] + }, + { + "name": "bufferRelayerInit", + "accounts": [ + { + "name": "bufferRelayer", + "isMut": true, + "isSigner": false + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": false + }, + { + "name": "queue", + "isMut": false, + "isSigner": false + }, + { + "name": "job", + "isMut": false, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "mint", + "isMut": false, + "isSigner": false + }, + { + "name": "payer", + "isMut": true, + "isSigner": true + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "BufferRelayerInitParams" + } + } + ] + }, + { + "name": "bufferRelayerOpenRound", + "accounts": [ + { + "name": "bufferRelayer", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleQueue", + "isMut": true, + "isSigner": false + }, + { + "name": "dataBuffer", + "isMut": true, + "isSigner": false + }, + { + "name": "permission", + "isMut": true, + "isSigner": false + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "BufferRelayerOpenRoundParams" + } + } + ] + }, + { + "name": "bufferRelayerSaveResult", + "accounts": [ + { + "name": "bufferRelayer", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "oracle", + "isMut": false, + "isSigner": false + }, + { + "name": "oracleQueue", + "isMut": true, + "isSigner": false + }, + { + "name": "dataBuffer", + "isMut": true, + "isSigner": false + }, + { + "name": "queueAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "permission", + "isMut": true, + "isSigner": false + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleWallet", + "isMut": true, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "BufferRelayerSaveResultParams" + } + } + ] + }, + { + "name": "crankInit", + "accounts": [ + { + "name": "crank", + "isMut": true, + "isSigner": true + }, + { + "name": "queue", + "isMut": false, + "isSigner": false + }, + { + "name": "buffer", + "isMut": true, + "isSigner": false + }, + { + "name": "payer", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "CrankInitParams" + } + } + ] + }, + { + "name": "crankPop", + "accounts": [ + { + "name": "crank", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleQueue", + "isMut": true, + "isSigner": false + }, + { + "name": "queueAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "payoutWallet", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "crankDataBuffer", + "isMut": true, + "isSigner": false + }, + { + "name": "queueDataBuffer", + "isMut": false, + "isSigner": false + }, + { + "name": "mint", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "CrankPopParams" + } + } + ] + }, + { + "name": "crankPopV2", + "accounts": [ + { + "name": "crank", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleQueue", + "isMut": true, + "isSigner": false + }, + { + "name": "queueAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "payoutWallet", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "crankDataBuffer", + "isMut": true, + "isSigner": false + }, + { + "name": "queueDataBuffer", + "isMut": false, + "isSigner": false + }, + { + "name": "mint", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "CrankPopParamsV2" + } + } + ] + }, + { + "name": "crankPush", + "accounts": [ + { + "name": "crank", + "isMut": true, + "isSigner": false + }, + { + "name": "aggregator", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleQueue", + "isMut": true, + "isSigner": false + }, + { + "name": "queueAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "permission", + "isMut": false, + "isSigner": false + }, + { + "name": "lease", + "isMut": true, + "isSigner": false + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "dataBuffer", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "CrankPushParams" + } + } + ] + }, + { + "name": "jobInit", + "accounts": [ + { + "name": "job", + "isMut": true, + "isSigner": true + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "payer", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "JobInitParams" + } + } + ] + }, + { + "name": "jobSetData", + "accounts": [ + { + "name": "job", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "JobSetDataParams" + } + } + ] + }, + { + "name": "leaseExtend", + "accounts": [ + { + "name": "lease", + "isMut": true, + "isSigner": false + }, + { + "name": "aggregator", + "isMut": false, + "isSigner": false + }, + { + "name": "queue", + "isMut": false, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": false + }, + { + "name": "owner", + "isMut": true, + "isSigner": true + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "mint", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "LeaseExtendParams" + } + } + ] + }, + { + "name": "leaseInit", + "accounts": [ + { + "name": "lease", + "isMut": true, + "isSigner": false + }, + { + "name": "queue", + "isMut": true, + "isSigner": false + }, + { + "name": "aggregator", + "isMut": false, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": false + }, + { + "name": "payer", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "owner", + "isMut": true, + "isSigner": true + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "mint", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "LeaseInitParams" + } + } + ] + }, + { + "name": "leaseSetAuthority", + "accounts": [ + { + "name": "lease", + "isMut": true, + "isSigner": false + }, + { + "name": "withdrawAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "newAuthority", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "LeaseSetAuthorityParams" + } + } + ] + }, + { + "name": "leaseWithdraw", + "accounts": [ + { + "name": "lease", + "isMut": true, + "isSigner": false + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "aggregator", + "isMut": false, + "isSigner": false + }, + { + "name": "queue", + "isMut": false, + "isSigner": false + }, + { + "name": "withdrawAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "withdrawAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "mint", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "LeaseWithdrawParams" + } + } + ] + }, + { + "name": "oracleHeartbeat", + "accounts": [ + { + "name": "oracle", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "gcOracle", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleQueue", + "isMut": true, + "isSigner": false + }, + { + "name": "permission", + "isMut": false, + "isSigner": false + }, + { + "name": "dataBuffer", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "OracleHeartbeatParams" + } + } + ] + }, + { + "name": "oracleTeeHeartbeat", + "accounts": [ + { + "name": "oracle", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "gcOracle", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleQueue", + "isMut": true, + "isSigner": false + }, + { + "name": "permission", + "isMut": false, + "isSigner": false + }, + { + "name": "dataBuffer", + "isMut": true, + "isSigner": false + }, + { + "name": "quote", + "isMut": false, + "isSigner": true + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "OracleTeeHeartbeatParams" + } + } + ] + }, + { + "name": "oracleInit", + "accounts": [ + { + "name": "oracle", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "wallet", + "isMut": false, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "queue", + "isMut": false, + "isSigner": false + }, + { + "name": "payer", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "OracleInitParams" + } + } + ] + }, + { + "name": "oracleQueueInit", + "accounts": [ + { + "name": "oracleQueue", + "isMut": true, + "isSigner": true + }, + { + "name": "authority", + "isMut": false, + "isSigner": false + }, + { + "name": "buffer", + "isMut": true, + "isSigner": false + }, + { + "name": "payer", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "mint", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "OracleQueueInitParams" + } + } + ] + }, + { + "name": "oracleQueueSetConfig", + "accounts": [ + { + "name": "queue", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "OracleQueueSetConfigParams" + } + } + ] + }, + { + "name": "oracleWithdraw", + "accounts": [ + { + "name": "oracle", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "withdrawAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleQueue", + "isMut": true, + "isSigner": false + }, + { + "name": "permission", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "payer", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "OracleWithdrawParams" + } + } + ] + }, + { + "name": "permissionInit", + "accounts": [ + { + "name": "permission", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": false + }, + { + "name": "granter", + "isMut": false, + "isSigner": false + }, + { + "name": "grantee", + "isMut": false, + "isSigner": false + }, + { + "name": "payer", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "PermissionInitParams" + } + } + ] + }, + { + "name": "permissionSet", + "accounts": [ + { + "name": "permission", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "PermissionSetParams" + } + } + ] + }, + { + "name": "programConfig", + "accounts": [ + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "programState", + "isMut": true, + "isSigner": false + }, + { + "name": "daoMint", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "ProgramConfigParams" + } + } + ] + }, + { + "name": "programInit", + "accounts": [ + { + "name": "state", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMint", + "isMut": true, + "isSigner": false + }, + { + "name": "vault", + "isMut": true, + "isSigner": false + }, + { + "name": "payer", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "daoMint", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "ProgramInitParams" + } + } + ] + }, + { + "name": "vaultTransfer", + "accounts": [ + { + "name": "state", + "isMut": false, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "to", + "isMut": true, + "isSigner": false + }, + { + "name": "vault", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "VaultTransferParams" + } + } + ] + }, + { + "name": "vrfInit", + "accounts": [ + { + "name": "vrf", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": false + }, + { + "name": "oracleQueue", + "isMut": false, + "isSigner": false + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "VrfInitParams" + } + } + ] + }, + { + "name": "vrfCloseAction", + "accounts": [ + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "vrf", + "isMut": true, + "isSigner": false + }, + { + "name": "permission", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleQueue", + "isMut": false, + "isSigner": false + }, + { + "name": "queueAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "solDest", + "isMut": false, + "isSigner": false + }, + { + "name": "escrowDest", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "VrfCloseParams" + } + } + ] + }, + { + "name": "vrfLiteCloseAction", + "accounts": [ + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "vrfLite", + "isMut": true, + "isSigner": false + }, + { + "name": "permission", + "isMut": true, + "isSigner": false + }, + { + "name": "queue", + "isMut": false, + "isSigner": false + }, + { + "name": "queueAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "solDest", + "isMut": false, + "isSigner": false + }, + { + "name": "escrowDest", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "VrfLiteCloseParams" + } + } + ] + }, + { + "name": "vrfLiteInit", + "accounts": [ + { + "name": "authority", + "isMut": false, + "isSigner": false + }, + { + "name": "vrf", + "isMut": true, + "isSigner": true + }, + { + "name": "mint", + "isMut": false, + "isSigner": false + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "queueAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "queue", + "isMut": false, + "isSigner": false + }, + { + "name": "permission", + "isMut": true, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "payer", + "isMut": true, + "isSigner": true + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "VrfLiteInitParams" + } + } + ] + }, + { + "name": "vrfLiteProveAndVerify", + "accounts": [ + { + "name": "vrfLite", + "isMut": true, + "isSigner": false + }, + { + "name": "callbackPid", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "oracle", + "isMut": false, + "isSigner": false + }, + { + "name": "oracleAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "oracleWallet", + "isMut": true, + "isSigner": false + }, + { + "name": "instructionsSysvar", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "VrfLiteProveAndVerifyParams" + } + } + ] + }, + { + "name": "vrfLiteRequestRandomness", + "accounts": [ + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "vrfLite", + "isMut": true, + "isSigner": false + }, + { + "name": "queue", + "isMut": true, + "isSigner": false + }, + { + "name": "queueAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "dataBuffer", + "isMut": false, + "isSigner": false + }, + { + "name": "permission", + "isMut": true, + "isSigner": false + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "recentBlockhashes", + "isMut": false, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "VrfLiteRequestRandomnessParams" + } + } + ] + }, + { + "name": "vrfPoolInit", + "accounts": [ + { + "name": "authority", + "isMut": false, + "isSigner": false + }, + { + "name": "vrfPool", + "isMut": true, + "isSigner": false + }, + { + "name": "queue", + "isMut": false, + "isSigner": false + }, + { + "name": "mint", + "isMut": false, + "isSigner": false + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "payer", + "isMut": true, + "isSigner": true + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "VrfPoolInitParams" + } + } + ] + }, + { + "name": "vrfPoolRemove", + "accounts": [ + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "vrfPool", + "isMut": true, + "isSigner": false + }, + { + "name": "queue", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "VrfPoolRemoveParams" + } + } + ] + }, + { + "name": "vrfPoolAdd", + "accounts": [ + { + "name": "authority", + "isMut": false, + "isSigner": false + }, + { + "name": "vrfPool", + "isMut": true, + "isSigner": false + }, + { + "name": "vrfLite", + "isMut": true, + "isSigner": false + }, + { + "name": "queue", + "isMut": false, + "isSigner": false + }, + { + "name": "permission", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "VrfPoolAddParams" + } + } + ] + }, + { + "name": "vrfPoolRequest", + "accounts": [ + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "vrfPool", + "isMut": true, + "isSigner": false + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "mint", + "isMut": false, + "isSigner": false + }, + { + "name": "queue", + "isMut": true, + "isSigner": false + }, + { + "name": "queueAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "dataBuffer", + "isMut": false, + "isSigner": false + }, + { + "name": "recentBlockhashes", + "isMut": false, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "VrfPoolRequestParams" + } + } + ] + }, + { + "name": "vrfProveAndVerify", + "accounts": [ + { + "name": "vrf", + "isMut": true, + "isSigner": false + }, + { + "name": "callbackPid", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "oracle", + "isMut": false, + "isSigner": false + }, + { + "name": "oracleAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "oracleWallet", + "isMut": true, + "isSigner": false + }, + { + "name": "instructionsSysvar", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "VrfProveAndVerifyParams" + } + } + ] + }, + { + "name": "vrfRequestRandomness", + "accounts": [ + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "vrf", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleQueue", + "isMut": true, + "isSigner": false + }, + { + "name": "queueAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "dataBuffer", + "isMut": false, + "isSigner": false + }, + { + "name": "permission", + "isMut": true, + "isSigner": false + }, + { + "name": "escrow", + "isMut": true, + "isSigner": false + }, + { + "name": "payerWallet", + "isMut": true, + "isSigner": false + }, + { + "name": "payerAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "recentBlockhashes", + "isMut": false, + "isSigner": false + }, + { + "name": "programState", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "VrfRequestRandomnessParams" + } + } + ] + }, + { + "name": "vrfSetCallback", + "accounts": [ + { + "name": "vrf", + "isMut": true, + "isSigner": false + }, + { + "name": "authority", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "VrfSetCallbackParams" + } + } + ] + } + ], + "accounts": [ + { + "name": "SbState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "authority", + "docs": [ + "The account authority permitted to make account changes." + ], + "type": "publicKey" + }, + { + "name": "tokenMint", + "docs": [ + "The token mint used for oracle rewards, aggregator leases, and other reward incentives." + ], + "type": "publicKey" + }, + { + "name": "tokenVault", + "docs": [ + "Token vault used by the program to receive kickbacks." + ], + "type": "publicKey" + }, + { + "name": "daoMint", + "docs": [ + "The token mint used by the DAO." + ], + "type": "publicKey" + }, + { + "name": "bump", + "docs": [ + "The PDA bump to derive the pubkey." + ], + "type": "u8" + }, + { + "name": "mrEnclaves", + "docs": [ + "Permitted enclave measurements" + ], + "type": { + "array": [ + { + "array": [ + "u8", + 32 + ] + }, + 6 + ] + } + }, + { + "name": "ebuf", + "docs": [ + "Reserved for future info." + ], + "type": { + "array": [ + "u8", + 799 + ] + } + } + ] + } + }, + { + "name": "TaskSpecRecord", + "type": { + "kind": "struct", + "fields": [ + { + "name": "hash", + "type": { + "defined": "Hash" + } + } + ] + } + }, + { + "name": "AggregatorAccountData", + "type": { + "kind": "struct", + "fields": [ + { + "name": "name", + "docs": [ + "Name of the aggregator to store on-chain." + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "metadata", + "docs": [ + "Metadata of the aggregator to store on-chain." + ], + "type": { + "array": [ + "u8", + 128 + ] + } + }, + { + "name": "reserved1", + "docs": [ + "Reserved." + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "queuePubkey", + "docs": [ + "Pubkey of the queue the aggregator belongs to." + ], + "type": "publicKey" + }, + { + "name": "oracleRequestBatchSize", + "docs": [ + "CONFIGS", + "Number of oracles assigned to an update request." + ], + "type": "u32" + }, + { + "name": "minOracleResults", + "docs": [ + "Minimum number of oracle responses required before a round is validated." + ], + "type": "u32" + }, + { + "name": "minJobResults", + "docs": [ + "Minimum number of job results before an oracle accepts a result." + ], + "type": "u32" + }, + { + "name": "minUpdateDelaySeconds", + "docs": [ + "Minimum number of seconds required between aggregator rounds." + ], + "type": "u32" + }, + { + "name": "startAfter", + "docs": [ + "Unix timestamp for which no feed update will occur before." + ], + "type": "i64" + }, + { + "name": "varianceThreshold", + "docs": [ + "Change percentage required between a previous round and the current round. If variance percentage is not met, reject new oracle responses." + ], + "type": { + "defined": "SwitchboardDecimal" + } + }, + { + "name": "forceReportPeriod", + "docs": [ + "Number of seconds for which, even if the variance threshold is not passed, accept new responses from oracles." + ], + "type": "i64" + }, + { + "name": "expiration", + "docs": [ + "Timestamp when the feed is no longer needed." + ], + "type": "i64" + }, + { + "name": "consecutiveFailureCount", + "docs": [ + "Counter for the number of consecutive failures before a feed is removed from a queue. If set to 0, failed feeds will remain on the queue." + ], + "type": "u64" + }, + { + "name": "nextAllowedUpdateTime", + "docs": [ + "Timestamp when the next update request will be available." + ], + "type": "i64" + }, + { + "name": "isLocked", + "docs": [ + "Flag for whether an aggregators configuration is locked for editing." + ], + "type": "bool" + }, + { + "name": "crankPubkey", + "docs": [ + "Optional, public key of the crank the aggregator is currently using. Event based feeds do not need a crank." + ], + "type": "publicKey" + }, + { + "name": "latestConfirmedRound", + "docs": [ + "Latest confirmed update request result that has been accepted as valid." + ], + "type": { + "defined": "AggregatorRound" + } + }, + { + "name": "currentRound", + "docs": [ + "Oracle results from the current round of update request that has not been accepted as valid yet." + ], + "type": { + "defined": "AggregatorRound" + } + }, + { + "name": "jobPubkeysData", + "docs": [ + "List of public keys containing the job definitions for how data is sourced off-chain by oracles." + ], + "type": { + "array": [ + "publicKey", + 16 + ] + } + }, + { + "name": "jobHashes", + "docs": [ + "Used to protect against malicious RPC nodes providing incorrect task definitions to oracles before fulfillment." + ], + "type": { + "array": [ + { + "defined": "Hash" + }, + 16 + ] + } + }, + { + "name": "jobPubkeysSize", + "docs": [ + "Number of jobs assigned to an oracle." + ], + "type": "u32" + }, + { + "name": "jobsChecksum", + "docs": [ + "Used to protect against malicious RPC nodes providing incorrect task definitions to oracles before fulfillment." + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "authority", + "docs": [ + "The account delegated as the authority for making account changes." + ], + "type": "publicKey" + }, + { + "name": "historyBuffer", + "docs": [ + "Optional, public key of a history buffer account storing the last N accepted results and their timestamps." + ], + "type": "publicKey" + }, + { + "name": "previousConfirmedRoundResult", + "docs": [ + "The previous confirmed round result." + ], + "type": { + "defined": "SwitchboardDecimal" + } + }, + { + "name": "previousConfirmedRoundSlot", + "docs": [ + "The slot when the previous confirmed round was opened." + ], + "type": "u64" + }, + { + "name": "disableCrank", + "docs": [ + "Whether an aggregator is permitted to join a crank." + ], + "type": "bool" + }, + { + "name": "jobWeights", + "docs": [ + "Job weights used for the weighted median of the aggregator's assigned job accounts." + ], + "type": { + "array": [ + "u8", + 16 + ] + } + }, + { + "name": "creationTimestamp", + "docs": [ + "Unix timestamp when the feed was created." + ], + "type": "i64" + }, + { + "name": "resolutionMode", + "docs": [ + "Use sliding window or round based resolution", + "NOTE: This changes result propogation in latest_round_result" + ], + "type": { + "defined": "AggregatorResolutionMode" + } + }, + { + "name": "basePriorityFee", + "type": "u32" + }, + { + "name": "priorityFeeBump", + "type": "u32" + }, + { + "name": "priorityFeeBumpPeriod", + "type": "u32" + }, + { + "name": "maxPriorityFeeMultiplier", + "type": "u32" + }, + { + "name": "parentFunction", + "type": "publicKey" + }, + { + "name": "ebuf", + "docs": [ + "Reserved for future info." + ], + "type": { + "array": [ + "u8", + 90 + ] + } + } + ] + } + }, + { + "name": "SlidingResultAccountData", + "type": { + "kind": "struct", + "fields": [ + { + "name": "data", + "type": { + "array": [ + { + "defined": "SlidingWindowElement" + }, + 16 + ] + } + }, + { + "name": "bump", + "type": "u8" + }, + { + "name": "ebuf", + "type": { + "array": [ + "u8", + 512 + ] + } + } + ] + } + }, + { + "name": "PermissionAccountData", + "type": { + "kind": "struct", + "fields": [ + { + "name": "authority", + "docs": [ + "The authority that is allowed to set permissions for this account." + ], + "type": "publicKey" + }, + { + "name": "permissions", + "docs": [ + "The SwitchboardPermission enumeration assigned by the granter to the grantee." + ], + "type": "u32" + }, + { + "name": "granter", + "docs": [ + "Public key of account that is granting permissions to use its resources." + ], + "type": "publicKey" + }, + { + "name": "grantee", + "docs": [ + "Public key of account that is being assigned permissions to use a granters resources." + ], + "type": "publicKey" + }, + { + "name": "expiration", + "docs": [ + "unused currently. may want permission PDA per permission for", + "unique expiration periods, BUT currently only one permission", + "per account makes sense for the infra. Dont over engineer." + ], + "type": "i64" + }, + { + "name": "bump", + "docs": [ + "The PDA bump to derive the pubkey." + ], + "type": "u8" + }, + { + "name": "ebuf", + "docs": [ + "Reserved for future info." + ], + "type": { + "array": [ + "u8", + 255 + ] + } + } + ] + } + }, + { + "name": "RealmSpawnRecordAccountData", + "type": { + "kind": "struct", + "fields": [ + { + "name": "ebuf", + "type": { + "array": [ + "u8", + 256 + ] + } + } + ] + } + }, + { + "name": "LeaseAccountData", + "docs": [ + "This should be any ccount that links a permission to an escrow" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "escrow", + "docs": [ + "Public key of the token account holding the lease contract funds until rewarded to oracles for successfully processing updates" + ], + "type": "publicKey" + }, + { + "name": "queue", + "docs": [ + "Public key of the oracle queue that the lease contract is applicable for." + ], + "type": "publicKey" + }, + { + "name": "aggregator", + "docs": [ + "Public key of the aggregator that the lease contract is applicable for" + ], + "type": "publicKey" + }, + { + "name": "tokenProgram", + "docs": [ + "Public key of the Solana token program ID." + ], + "type": "publicKey" + }, + { + "name": "isActive", + "docs": [ + "Whether the lease contract is still active." + ], + "type": "bool" + }, + { + "name": "crankRowCount", + "docs": [ + "Index of an aggregators position on a crank." + ], + "type": "u32" + }, + { + "name": "createdAt", + "docs": [ + "Timestamp when the lease contract was created." + ], + "type": "i64" + }, + { + "name": "updateCount", + "docs": [ + "Counter keeping track of the number of updates for the given aggregator." + ], + "type": "u128" + }, + { + "name": "withdrawAuthority", + "docs": [ + "Public key of keypair that may withdraw funds from the lease at any time" + ], + "type": "publicKey" + }, + { + "name": "bump", + "docs": [ + "The PDA bump to derive the pubkey." + ], + "type": "u8" + }, + { + "name": "ebuf", + "type": { + "array": [ + "u8", + 255 + ] + } + } + ] + } + }, + { + "name": "OracleQueueAccountData", + "type": { + "kind": "struct", + "fields": [ + { + "name": "name", + "docs": [ + "Name of the queue to store on-chain." + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "metadata", + "docs": [ + "Metadata of the queue to store on-chain." + ], + "type": { + "array": [ + "u8", + 64 + ] + } + }, + { + "name": "authority", + "docs": [ + "The account delegated as the authority for making account changes or assigning permissions targeted at the queue." + ], + "type": "publicKey" + }, + { + "name": "oracleTimeout", + "docs": [ + "Interval when stale oracles will be removed if they fail to heartbeat." + ], + "type": "u32" + }, + { + "name": "reward", + "docs": [ + "Rewards to provide oracles and round openers on this queue." + ], + "type": "u64" + }, + { + "name": "minStake", + "docs": [ + "The minimum amount of stake oracles must present to remain on the queue." + ], + "type": "u64" + }, + { + "name": "slashingEnabled", + "docs": [ + "Whether slashing is enabled on this queue." + ], + "type": "bool" + }, + { + "name": "varianceToleranceMultiplier", + "docs": [ + "The tolerated variance amount oracle results can have from the accepted round result before being slashed.", + "slashBound = varianceToleranceMultiplier * stdDeviation Default: 2" + ], + "type": { + "defined": "SwitchboardDecimal" + } + }, + { + "name": "feedProbationPeriod", + "docs": [ + "Number of update rounds new feeds are on probation for.", + "If a feed returns 429s within probation period, auto disable permissions." + ], + "type": "u32" + }, + { + "name": "currIdx", + "docs": [ + "Current index of the oracle rotation." + ], + "type": "u32" + }, + { + "name": "size", + "docs": [ + "Current number of oracles on a queue." + ], + "type": "u32" + }, + { + "name": "gcIdx", + "docs": [ + "Garbage collection index." + ], + "type": "u32" + }, + { + "name": "consecutiveFeedFailureLimit", + "docs": [ + "Consecutive failure limit for a feed before feed permission is revoked." + ], + "type": "u64" + }, + { + "name": "consecutiveOracleFailureLimit", + "docs": [ + "Consecutive failure limit for an oracle before oracle permission is revoked." + ], + "type": "u64" + }, + { + "name": "unpermissionedFeedsEnabled", + "docs": [ + "Enabling this setting means data feeds do not need explicit permission to join the queue and request new values from its oracles." + ], + "type": "bool" + }, + { + "name": "unpermissionedVrfEnabled", + "docs": [ + "Enabling this setting means VRF accounts do not need explicit permission to join the queue and request new values from its oracles." + ], + "type": "bool" + }, + { + "name": "curatorRewardCut", + "docs": [ + "TODO: Revenue percentage rewarded to job curators overall." + ], + "type": { + "defined": "SwitchboardDecimal" + } + }, + { + "name": "lockLeaseFunding", + "docs": [ + "Prevent new leases from being funded n this queue.", + "Useful to turn down a queue for migrations, since authority is always immutable." + ], + "type": "bool" + }, + { + "name": "mint", + "docs": [ + "Token mint used for the oracle queue rewards and slashing." + ], + "type": "publicKey" + }, + { + "name": "enableBufferRelayers", + "docs": [ + "Whether oracles are permitted to fulfill buffer relayer update request." + ], + "type": "bool" + }, + { + "name": "enableTeeOnly", + "type": "bool" + }, + { + "name": "ebuf", + "docs": [ + "Reserved for future info." + ], + "type": { + "array": [ + "u8", + 967 + ] + } + }, + { + "name": "maxSize", + "docs": [ + "Maximum number of oracles a queue can support." + ], + "type": "u32" + }, + { + "name": "dataBuffer", + "docs": [ + "The public key of the OracleQueueBuffer account holding a collection of Oracle pubkeys that haver successfully heartbeated before the queues `oracleTimeout`." + ], + "type": "publicKey" + } + ] + } + }, + { + "name": "CrankAccountData", + "type": { + "kind": "struct", + "fields": [ + { + "name": "name", + "docs": [ + "Name of the crank to store on-chain." + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "metadata", + "docs": [ + "Metadata of the crank to store on-chain." + ], + "type": { + "array": [ + "u8", + 64 + ] + } + }, + { + "name": "queuePubkey", + "docs": [ + "Public key of the oracle queue who owns the crank." + ], + "type": "publicKey" + }, + { + "name": "pqSize", + "docs": [ + "Number of aggregators added to the crank." + ], + "type": "u32" + }, + { + "name": "maxRows", + "docs": [ + "Maximum number of aggregators allowed to be added to a crank." + ], + "type": "u32" + }, + { + "name": "jitterModifier", + "docs": [ + "Pseudorandom value added to next aggregator update time." + ], + "type": "u8" + }, + { + "name": "ebuf", + "docs": [ + "Reserved for future info." + ], + "type": { + "array": [ + "u8", + 255 + ] + } + }, + { + "name": "dataBuffer", + "docs": [ + "The public key of the CrankBuffer account holding a collection of Aggregator pubkeys and their next allowed update time." + ], + "type": "publicKey" + } + ] + } + }, + { + "name": "OracleAccountData", + "type": { + "kind": "struct", + "fields": [ + { + "name": "name", + "docs": [ + "Name of the oracle to store on-chain." + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "metadata", + "docs": [ + "Metadata of the oracle to store on-chain." + ], + "type": { + "array": [ + "u8", + 128 + ] + } + }, + { + "name": "oracleAuthority", + "docs": [ + "The account delegated as the authority for making account changes or withdrawing funds from a staking wallet." + ], + "type": "publicKey" + }, + { + "name": "lastHeartbeat", + "docs": [ + "Unix timestamp when the oracle last heartbeated" + ], + "type": "i64" + }, + { + "name": "numInUse", + "docs": [ + "Flag dictating if an oracle is active and has heartbeated before the queue's oracle timeout parameter." + ], + "type": "u32" + }, + { + "name": "tokenAccount", + "docs": [ + "Stake account and reward/slashing wallet." + ], + "type": "publicKey" + }, + { + "name": "queuePubkey", + "docs": [ + "Public key of the oracle queue who has granted it permission to use its resources." + ], + "type": "publicKey" + }, + { + "name": "metrics", + "docs": [ + "Oracle track record." + ], + "type": { + "defined": "OracleMetrics" + } + }, + { + "name": "bump", + "docs": [ + "The PDA bump to derive the pubkey." + ], + "type": "u8" + }, + { + "name": "ebuf", + "docs": [ + "Reserved for future info." + ], + "type": { + "array": [ + "u8", + 255 + ] + } + } + ] + } + }, + { + "name": "JobAccountData", + "type": { + "kind": "struct", + "fields": [ + { + "name": "name", + "docs": [ + "Name of the job to store on-chain." + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "metadata", + "docs": [ + "Metadata of the job to store on-chain." + ], + "type": { + "array": [ + "u8", + 64 + ] + } + }, + { + "name": "authority", + "docs": [ + "The account delegated as the authority for making account changes." + ], + "type": "publicKey" + }, + { + "name": "expiration", + "docs": [ + "Unix timestamp when the job is considered invalid" + ], + "type": "i64" + }, + { + "name": "hash", + "docs": [ + "Hash of the serialized data to prevent tampering." + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "data", + "docs": [ + "Serialized protobuf containing the collection of task to retrieve data off-chain." + ], + "type": "bytes" + }, + { + "name": "referenceCount", + "docs": [ + "The number of data feeds referencing the job account.." + ], + "type": "u32" + }, + { + "name": "totalSpent", + "docs": [ + "The token amount funded into a feed that contains this job account." + ], + "type": "u64" + }, + { + "name": "createdAt", + "docs": [ + "Unix timestamp when the job was created on-chain." + ], + "type": "i64" + }, + { + "name": "isInitializing", + "type": "u8" + } + ] + } + }, + { + "name": "VrfAccountData", + "type": { + "kind": "struct", + "fields": [ + { + "name": "status", + "docs": [ + "The current status of the VRF account." + ], + "type": { + "defined": "VrfStatus" + } + }, + { + "name": "counter", + "docs": [ + "Incremental counter for tracking VRF rounds." + ], + "type": "u128" + }, + { + "name": "authority", + "docs": [ + "On-chain account delegated for making account changes." + ], + "type": "publicKey" + }, + { + "name": "oracleQueue", + "docs": [ + "The OracleQueueAccountData that is assigned to fulfill VRF update request." + ], + "type": "publicKey" + }, + { + "name": "escrow", + "docs": [ + "The token account used to hold funds for VRF update request." + ], + "type": "publicKey" + }, + { + "name": "callback", + "docs": [ + "The callback that is invoked when an update request is successfully verified." + ], + "type": { + "defined": "CallbackZC" + } + }, + { + "name": "batchSize", + "docs": [ + "The number of oracles assigned to a VRF update request." + ], + "type": "u32" + }, + { + "name": "builders", + "docs": [ + "Struct containing the intermediate state between VRF crank actions." + ], + "type": { + "array": [ + { + "defined": "VrfBuilder" + }, + 8 + ] + } + }, + { + "name": "buildersLen", + "docs": [ + "The number of builders." + ], + "type": "u32" + }, + { + "name": "testMode", + "type": "bool" + }, + { + "name": "currentRound", + "docs": [ + "Oracle results from the current round of update request that has not been accepted as valid yet" + ], + "type": { + "defined": "VrfRound" + } + }, + { + "name": "ebuf", + "docs": [ + "Reserved for future info." + ], + "type": { + "array": [ + "u8", + 1024 + ] + } + } + ] + } + }, + { + "name": "VrfLiteAccountData", + "type": { + "kind": "struct", + "fields": [ + { + "name": "stateBump", + "docs": [ + "The bump used to derive the SbState account." + ], + "type": "u8" + }, + { + "name": "permissionBump", + "docs": [ + "The bump used to derive the permission account." + ], + "type": "u8" + }, + { + "name": "vrfPool", + "docs": [ + "The VrfPool the account belongs to." + ], + "type": "publicKey" + }, + { + "name": "status", + "docs": [ + "The current status of the VRF account." + ], + "type": { + "defined": "VrfStatus" + } + }, + { + "name": "result", + "docs": [ + "The VRF round result. Will be zeroized if still awaiting fulfillment." + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "counter", + "docs": [ + "Incremental counter for tracking VRF rounds." + ], + "type": "u128" + }, + { + "name": "alpha", + "docs": [ + "The alpha bytes used to calculate the VRF proof." + ], + "type": { + "array": [ + "u8", + 256 + ] + } + }, + { + "name": "alphaLen", + "docs": [ + "The number of bytes in the alpha buffer." + ], + "type": "u32" + }, + { + "name": "requestSlot", + "docs": [ + "The Slot when the VRF round was opened." + ], + "type": "u64" + }, + { + "name": "requestTimestamp", + "docs": [ + "The unix timestamp when the VRF round was opened." + ], + "type": "i64" + }, + { + "name": "authority", + "docs": [ + "On-chain account delegated for making account changes." + ], + "type": "publicKey" + }, + { + "name": "queue", + "docs": [ + "The OracleQueueAccountData that is assigned to fulfill VRF update request." + ], + "type": "publicKey" + }, + { + "name": "escrow", + "docs": [ + "The token account used to hold funds for VRF update request." + ], + "type": "publicKey" + }, + { + "name": "callback", + "docs": [ + "The callback that is invoked when an update request is successfully verified." + ], + "type": { + "defined": "CallbackZC" + } + }, + { + "name": "builder", + "docs": [ + "The incremental VRF proof calculation." + ], + "type": { + "defined": "VrfBuilder" + } + }, + { + "name": "expiration", + "type": "i64" + }, + { + "name": "ebuf", + "type": { + "array": [ + "u8", + 1024 + ] + } + } + ] + } + }, + { + "name": "VrfPoolAccountData", + "type": { + "kind": "struct", + "fields": [ + { + "name": "authority", + "docs": [ + "ACCOUNTS" + ], + "type": "publicKey" + }, + { + "name": "queue", + "type": "publicKey" + }, + { + "name": "escrow", + "type": "publicKey" + }, + { + "name": "minInterval", + "type": "u32" + }, + { + "name": "maxRows", + "type": "u32" + }, + { + "name": "size", + "type": "u32" + }, + { + "name": "idx", + "type": "u32" + }, + { + "name": "stateBump", + "type": "u8" + }, + { + "name": "ebuf", + "type": { + "array": [ + "u8", + 135 + ] + } + } + ] + } + }, + { + "name": "BufferRelayerAccountData", + "type": { + "kind": "struct", + "fields": [ + { + "name": "name", + "docs": [ + "Name of the buffer account to store on-chain." + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "queuePubkey", + "docs": [ + "Public key of the OracleQueueAccountData that is currently assigned to fulfill buffer relayer update request." + ], + "type": "publicKey" + }, + { + "name": "escrow", + "docs": [ + "Token account to reward oracles for completing update request." + ], + "type": "publicKey" + }, + { + "name": "authority", + "docs": [ + "The account delegated as the authority for making account changes." + ], + "type": "publicKey" + }, + { + "name": "jobPubkey", + "docs": [ + "Public key of the JobAccountData that defines how the buffer relayer is updated." + ], + "type": "publicKey" + }, + { + "name": "jobHash", + "docs": [ + "Used to protect against malicious RPC nodes providing incorrect task definitions to oracles before fulfillment" + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "minUpdateDelaySeconds", + "docs": [ + "Minimum delay between update request." + ], + "type": "u32" + }, + { + "name": "isLocked", + "docs": [ + "Whether buffer relayer config is locked for further changes." + ], + "type": "bool" + }, + { + "name": "currentRound", + "docs": [ + "The current buffer relayer update round that is yet to be confirmed." + ], + "type": { + "defined": "BufferRelayerRound" + } + }, + { + "name": "latestConfirmedRound", + "docs": [ + "The latest confirmed buffer relayer update round." + ], + "type": { + "defined": "BufferRelayerRound" + } + }, + { + "name": "result", + "docs": [ + "The buffer holding the latest confirmed result." + ], + "type": "bytes" + } + ] + } + } + ], + "types": [ + { + "name": "AggregatorAddJobParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "weight", + "type": { + "option": "u8" + } + } + ] + } + }, + { + "name": "AggregatorCloseParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "stateBump", + "type": "u8" + }, + { + "name": "permissionBump", + "type": "u8" + }, + { + "name": "leaseBump", + "type": "u8" + } + ] + } + }, + { + "name": "AggregatorFunctionUpsertParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "name", + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "value", + "type": { + "defined": "BorshDecimal" + } + } + ] + } + }, + { + "name": "AggregatorInitParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "name", + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "metadata", + "type": { + "array": [ + "u8", + 128 + ] + } + }, + { + "name": "batchSize", + "type": "u32" + }, + { + "name": "minOracleResults", + "type": "u32" + }, + { + "name": "minJobResults", + "type": "u32" + }, + { + "name": "minUpdateDelaySeconds", + "type": "u32" + }, + { + "name": "startAfter", + "type": "i64" + }, + { + "name": "varianceThreshold", + "type": { + "defined": "BorshDecimal" + } + }, + { + "name": "forceReportPeriod", + "type": "i64" + }, + { + "name": "expiration", + "type": "i64" + }, + { + "name": "stateBump", + "type": "u8" + }, + { + "name": "disableCrank", + "type": "bool" + } + ] + } + }, + { + "name": "AggregatorLockParams", + "type": { + "kind": "struct", + "fields": [] + } + }, + { + "name": "AggregatorOpenRoundParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "stateBump", + "type": "u8" + }, + { + "name": "leaseBump", + "type": "u8" + }, + { + "name": "permissionBump", + "type": "u8" + }, + { + "name": "jitter", + "type": "u8" + } + ] + } + }, + { + "name": "AggregatorRemoveJobParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "jobIdx", + "type": "u32" + } + ] + } + }, + { + "name": "AggregatorSaveResultParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "oracleIdx", + "type": "u32" + }, + { + "name": "error", + "type": "bool" + }, + { + "name": "value", + "type": { + "defined": "BorshDecimal" + } + }, + { + "name": "jobsChecksum", + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "minResponse", + "type": { + "defined": "BorshDecimal" + } + }, + { + "name": "maxResponse", + "type": { + "defined": "BorshDecimal" + } + }, + { + "name": "feedPermissionBump", + "type": "u8" + }, + { + "name": "oraclePermissionBump", + "type": "u8" + }, + { + "name": "leaseBump", + "type": "u8" + }, + { + "name": "stateBump", + "type": "u8" + } + ] + } + }, + { + "name": "AggregatorSaveResultParamsV2", + "type": { + "kind": "struct", + "fields": [ + { + "name": "oracleIdx", + "type": "u32" + }, + { + "name": "error", + "type": "bool" + }, + { + "name": "value", + "type": { + "defined": "BorshDecimal" + } + }, + { + "name": "jobsChecksum", + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "minResponse", + "type": { + "defined": "BorshDecimal" + } + }, + { + "name": "maxResponse", + "type": { + "defined": "BorshDecimal" + } + }, + { + "name": "feedPermissionBump", + "type": "u8" + }, + { + "name": "oraclePermissionBump", + "type": "u8" + }, + { + "name": "leaseBump", + "type": "u8" + }, + { + "name": "stateBump", + "type": "u8" + }, + { + "name": "jobValues", + "type": { + "vec": { + "option": { + "defined": "BorshDecimal" + } + } + } + } + ] + } + }, + { + "name": "AggregatorSetAuthorityParams", + "type": { + "kind": "struct", + "fields": [] + } + }, + { + "name": "AggregatorSetBatchSizeParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "batchSize", + "type": "u32" + } + ] + } + }, + { + "name": "AggregatorSetConfigParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "name", + "type": { + "option": { + "array": [ + "u8", + 32 + ] + } + } + }, + { + "name": "metadata", + "type": { + "option": { + "array": [ + "u8", + 128 + ] + } + } + }, + { + "name": "minUpdateDelaySeconds", + "type": { + "option": "u32" + } + }, + { + "name": "minJobResults", + "type": { + "option": "u32" + } + }, + { + "name": "batchSize", + "type": { + "option": "u32" + } + }, + { + "name": "minOracleResults", + "type": { + "option": "u32" + } + }, + { + "name": "forceReportPeriod", + "type": { + "option": "u32" + } + }, + { + "name": "varianceThreshold", + "type": { + "option": { + "defined": "BorshDecimal" + } + } + }, + { + "name": "basePriorityFee", + "type": { + "option": "u32" + } + }, + { + "name": "priorityFeeBump", + "type": { + "option": "u32" + } + }, + { + "name": "priorityFeeBumpPeriod", + "type": { + "option": "u32" + } + }, + { + "name": "maxPriorityFeeMultiplier", + "type": { + "option": "u32" + } + }, + { + "name": "disableCrank", + "type": { + "option": "bool" + } + } + ] + } + }, + { + "name": "AggregatorSetForceReportPeriodParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "forceReportPeriod", + "type": "u32" + } + ] + } + }, + { + "name": "AggregatorSetHistoryBufferParams", + "type": { + "kind": "struct", + "fields": [] + } + }, + { + "name": "AggregatorSetMinJobsParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "minJobResults", + "type": "u32" + } + ] + } + }, + { + "name": "AggregatorSetMinOraclesParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "minOracleResults", + "type": "u32" + } + ] + } + }, + { + "name": "AggregatorSetQueueParams", + "type": { + "kind": "struct", + "fields": [] + } + }, + { + "name": "AggregatorSetResolutionModeParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "mode", + "type": "u8" + } + ] + } + }, + { + "name": "AggregatorSetUpdateIntervalParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "newInterval", + "type": "u32" + } + ] + } + }, + { + "name": "AggregatorSetVarianceThresholdParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "varianceThreshold", + "type": { + "defined": "BorshDecimal" + } + } + ] + } + }, + { + "name": "AggregatorTeeSaveResultParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "value", + "type": { + "defined": "BorshDecimal" + } + }, + { + "name": "jobsChecksum", + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "minResponse", + "type": { + "defined": "BorshDecimal" + } + }, + { + "name": "maxResponse", + "type": { + "defined": "BorshDecimal" + } + }, + { + "name": "feedPermissionBump", + "type": "u8" + }, + { + "name": "oraclePermissionBump", + "type": "u8" + }, + { + "name": "leaseBump", + "type": "u8" + }, + { + "name": "stateBump", + "type": "u8" + } + ] + } + }, + { + "name": "BufferRelayerInitParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "name", + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "minUpdateDelaySeconds", + "type": "u32" + }, + { + "name": "stateBump", + "type": "u8" + } + ] + } + }, + { + "name": "BufferRelayerOpenRoundParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "stateBump", + "type": "u8" + }, + { + "name": "permissionBump", + "type": "u8" + } + ] + } + }, + { + "name": "BufferRelayerSaveResultParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "stateBump", + "type": "u8" + }, + { + "name": "permissionBump", + "type": "u8" + }, + { + "name": "result", + "type": "bytes" + }, + { + "name": "success", + "type": "bool" + } + ] + } + }, + { + "name": "CrankInitParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "name", + "type": "bytes" + }, + { + "name": "metadata", + "type": "bytes" + }, + { + "name": "crankSize", + "type": "u32" + } + ] + } + }, + { + "name": "CrankPopParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "stateBump", + "type": "u8" + }, + { + "name": "leaseBumps", + "type": "bytes" + }, + { + "name": "permissionBumps", + "type": "bytes" + }, + { + "name": "nonce", + "type": { + "option": "u32" + } + }, + { + "name": "failOpenOnAccountMismatch", + "type": { + "option": "bool" + } + } + ] + } + }, + { + "name": "CrankPopParamsV2", + "type": { + "kind": "struct", + "fields": [ + { + "name": "stateBump", + "type": "u8" + }, + { + "name": "leaseBumps", + "type": "bytes" + }, + { + "name": "permissionBumps", + "type": "bytes" + }, + { + "name": "nonce", + "type": { + "option": "u32" + } + }, + { + "name": "failOpenOnAccountMismatch", + "type": { + "option": "bool" + } + }, + { + "name": "popIdx", + "type": { + "option": "u32" + } + } + ] + } + }, + { + "name": "CrankPushParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "stateBump", + "type": "u8" + }, + { + "name": "permissionBump", + "type": "u8" + }, + { + "name": "notifiRef", + "type": { + "option": { + "array": [ + "u8", + 64 + ] + } + } + } + ] + } + }, + { + "name": "JobInitParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "name", + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "expiration", + "type": "i64" + }, + { + "name": "stateBump", + "type": "u8" + }, + { + "name": "data", + "type": "bytes" + }, + { + "name": "size", + "type": { + "option": "u32" + } + } + ] + } + }, + { + "name": "JobSetDataParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "data", + "type": "bytes" + }, + { + "name": "chunkIdx", + "type": "u8" + } + ] + } + }, + { + "name": "LeaseExtendParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "loadAmount", + "type": "u64" + }, + { + "name": "leaseBump", + "type": "u8" + }, + { + "name": "stateBump", + "type": "u8" + }, + { + "name": "walletBumps", + "type": "bytes" + } + ] + } + }, + { + "name": "LeaseInitParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "loadAmount", + "type": "u64" + }, + { + "name": "withdrawAuthority", + "type": "publicKey" + }, + { + "name": "leaseBump", + "type": "u8" + }, + { + "name": "stateBump", + "type": "u8" + }, + { + "name": "walletBumps", + "type": "bytes" + } + ] + } + }, + { + "name": "LeaseSetAuthorityParams", + "type": { + "kind": "struct", + "fields": [] + } + }, + { + "name": "LeaseWithdrawParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "stateBump", + "type": "u8" + }, + { + "name": "leaseBump", + "type": "u8" + }, + { + "name": "amount", + "type": "u64" + } + ] + } + }, + { + "name": "OracleHeartbeatParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "permissionBump", + "type": "u8" + } + ] + } + }, + { + "name": "OracleInitParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "name", + "type": "bytes" + }, + { + "name": "metadata", + "type": "bytes" + }, + { + "name": "stateBump", + "type": "u8" + }, + { + "name": "oracleBump", + "type": "u8" + } + ] + } + }, + { + "name": "OracleQueueInitParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "name", + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "metadata", + "type": { + "array": [ + "u8", + 64 + ] + } + }, + { + "name": "reward", + "type": "u64" + }, + { + "name": "minStake", + "type": "u64" + }, + { + "name": "feedProbationPeriod", + "type": "u32" + }, + { + "name": "oracleTimeout", + "type": "u32" + }, + { + "name": "slashingEnabled", + "type": "bool" + }, + { + "name": "varianceToleranceMultiplier", + "type": { + "defined": "BorshDecimal" + } + }, + { + "name": "consecutiveFeedFailureLimit", + "type": "u64" + }, + { + "name": "consecutiveOracleFailureLimit", + "type": "u64" + }, + { + "name": "queueSize", + "type": "u32" + }, + { + "name": "unpermissionedFeeds", + "type": "bool" + }, + { + "name": "unpermissionedVrf", + "type": "bool" + }, + { + "name": "enableBufferRelayers", + "type": "bool" + }, + { + "name": "enableTeeOnly", + "type": "bool" + } + ] + } + }, + { + "name": "OracleQueueSetConfigParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "name", + "type": { + "option": { + "array": [ + "u8", + 32 + ] + } + } + }, + { + "name": "metadata", + "type": { + "option": { + "array": [ + "u8", + 64 + ] + } + } + }, + { + "name": "unpermissionedFeedsEnabled", + "type": { + "option": "bool" + } + }, + { + "name": "unpermissionedVrfEnabled", + "type": { + "option": "bool" + } + }, + { + "name": "enableBufferRelayers", + "type": { + "option": "bool" + } + }, + { + "name": "varianceToleranceMultiplier", + "type": { + "option": { + "defined": "BorshDecimal" + } + } + }, + { + "name": "slashingEnabled", + "type": { + "option": "bool" + } + }, + { + "name": "reward", + "type": { + "option": "u64" + } + }, + { + "name": "minStake", + "type": { + "option": "u64" + } + }, + { + "name": "oracleTimeout", + "type": { + "option": "u32" + } + }, + { + "name": "consecutiveFeedFailureLimit", + "type": { + "option": "u64" + } + }, + { + "name": "consecutiveOracleFailureLimit", + "type": { + "option": "u64" + } + }, + { + "name": "enableTeeOnly", + "type": { + "option": "bool" + } + } + ] + } + }, + { + "name": "OracleQueueSetRewardsParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "rewards", + "type": "u64" + } + ] + } + }, + { + "name": "OracleTeeHeartbeatParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "permissionBump", + "type": "u8" + } + ] + } + }, + { + "name": "OracleWithdrawParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "stateBump", + "type": "u8" + }, + { + "name": "permissionBump", + "type": "u8" + }, + { + "name": "amount", + "type": "u64" + } + ] + } + }, + { + "name": "PermissionInitParams", + "type": { + "kind": "struct", + "fields": [] + } + }, + { + "name": "PermissionSetParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "permission", + "type": { + "defined": "SwitchboardPermission" + } + }, + { + "name": "enable", + "type": "bool" + } + ] + } + }, + { + "name": "ProgramConfigParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "token", + "type": "publicKey" + }, + { + "name": "bump", + "type": "u8" + }, + { + "name": "daoMint", + "type": "publicKey" + }, + { + "name": "addEnclaves", + "type": { + "vec": { + "array": [ + "u8", + 32 + ] + } + } + }, + { + "name": "rmEnclaves", + "type": { + "vec": { + "array": [ + "u8", + 32 + ] + } + } + } + ] + } + }, + { + "name": "ProgramInitParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "stateBump", + "type": "u8" + } + ] + } + }, + { + "name": "SetBumpsParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "stateBump", + "type": "u8" + } + ] + } + }, + { + "name": "VaultTransferParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "stateBump", + "type": "u8" + }, + { + "name": "amount", + "type": "u64" + } + ] + } + }, + { + "name": "VrfCloseParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "stateBump", + "type": "u8" + }, + { + "name": "permissionBump", + "type": "u8" + } + ] + } + }, + { + "name": "VrfInitParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "callback", + "type": { + "defined": "Callback" + } + }, + { + "name": "stateBump", + "type": "u8" + } + ] + } + }, + { + "name": "VrfLiteCloseParams", + "type": { + "kind": "struct", + "fields": [] + } + }, + { + "name": "VrfLiteInitParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "callback", + "type": { + "option": { + "defined": "Callback" + } + } + }, + { + "name": "stateBump", + "type": "u8" + }, + { + "name": "expiration", + "type": { + "option": "i64" + } + } + ] + } + }, + { + "name": "VrfLiteProveAndVerifyParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "nonce", + "type": { + "option": "u32" + } + }, + { + "name": "proof", + "type": "bytes" + }, + { + "name": "proofEncoded", + "type": "string" + }, + { + "name": "counter", + "type": "u128" + } + ] + } + }, + { + "name": "VrfLiteRequestRandomnessParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "callback", + "type": { + "option": { + "defined": "Callback" + } + } + } + ] + } + }, + { + "name": "VrfPoolAddParams", + "type": { + "kind": "struct", + "fields": [] + } + }, + { + "name": "VrfPoolInitParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "maxRows", + "type": "u32" + }, + { + "name": "minInterval", + "type": "u32" + }, + { + "name": "stateBump", + "type": "u8" + } + ] + } + }, + { + "name": "VrfPoolRemoveParams", + "type": { + "kind": "struct", + "fields": [] + } + }, + { + "name": "VrfPoolRequestParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "callback", + "type": { + "option": { + "defined": "Callback" + } + } + } + ] + } + }, + { + "name": "VrfProveParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "proof", + "type": "bytes" + }, + { + "name": "idx", + "type": "u32" + } + ] + } + }, + { + "name": "VrfProveAndVerifyParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "nonce", + "type": { + "option": "u32" + } + }, + { + "name": "stateBump", + "type": "u8" + }, + { + "name": "idx", + "type": "u32" + }, + { + "name": "proof", + "type": "bytes" + }, + { + "name": "proofEncoded", + "type": "string" + }, + { + "name": "counter", + "type": "u128" + } + ] + } + }, + { + "name": "VrfRequestRandomnessParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "permissionBump", + "type": "u8" + }, + { + "name": "stateBump", + "type": "u8" + } + ] + } + }, + { + "name": "VrfSetCallbackParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "callback", + "type": { + "defined": "Callback" + } + } + ] + } + }, + { + "name": "Callback", + "type": { + "kind": "struct", + "fields": [ + { + "name": "programId", + "type": "publicKey" + }, + { + "name": "accounts", + "type": { + "vec": { + "defined": "AccountMetaBorsh" + } + } + }, + { + "name": "ixData", + "type": "bytes" + } + ] + } + }, + { + "name": "EcvrfProofZC", + "type": { + "kind": "struct", + "fields": [ + { + "name": "gamma", + "type": { + "defined": "EdwardsPointZC" + } + }, + { + "name": "c", + "type": { + "defined": "Scalar" + } + }, + { + "name": "s", + "type": { + "defined": "Scalar" + } + } + ] + } + }, + { + "name": "Scalar", + "docs": [ + "The `Scalar` struct holds an integer \\\\(s < 2\\^{255} \\\\) which", + "represents an element of \\\\(\\mathbb Z / \\ell\\\\)." + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "bytes", + "docs": [ + "`bytes` is a little-endian byte encoding of an integer representing a scalar modulo the", + "group order.", + "", + "# Invariant", + "", + "The integer representing this scalar must be bounded above by \\\\(2\\^{255}\\\\), or", + "equivalently the high bit of `bytes[31]` must be zero.", + "", + "This ensures that there is room for a carry bit when computing a NAF representation." + ], + "type": { + "array": [ + "u8", + 32 + ] + } + } + ] + } + }, + { + "name": "FieldElementZC", + "type": { + "kind": "struct", + "fields": [ + { + "name": "bytes", + "type": { + "array": [ + "u64", + 5 + ] + } + } + ] + } + }, + { + "name": "CompletedPointZC", + "type": { + "kind": "struct", + "fields": [ + { + "name": "x", + "type": { + "defined": "FieldElementZC" + } + }, + { + "name": "y", + "type": { + "defined": "FieldElementZC" + } + }, + { + "name": "z", + "type": { + "defined": "FieldElementZC" + } + }, + { + "name": "t", + "type": { + "defined": "FieldElementZC" + } + } + ] + } + }, + { + "name": "EdwardsPointZC", + "type": { + "kind": "struct", + "fields": [ + { + "name": "x", + "type": { + "defined": "FieldElementZC" + } + }, + { + "name": "y", + "type": { + "defined": "FieldElementZC" + } + }, + { + "name": "z", + "type": { + "defined": "FieldElementZC" + } + }, + { + "name": "t", + "type": { + "defined": "FieldElementZC" + } + } + ] + } + }, + { + "name": "ProjectivePointZC", + "type": { + "kind": "struct", + "fields": [ + { + "name": "x", + "type": { + "defined": "FieldElementZC" + } + }, + { + "name": "y", + "type": { + "defined": "FieldElementZC" + } + }, + { + "name": "z", + "type": { + "defined": "FieldElementZC" + } + } + ] + } + }, + { + "name": "EcvrfIntermediate", + "type": { + "kind": "struct", + "fields": [ + { + "name": "r", + "type": { + "defined": "FieldElementZC" + } + }, + { + "name": "nS", + "type": { + "defined": "FieldElementZC" + } + }, + { + "name": "d", + "type": { + "defined": "FieldElementZC" + } + }, + { + "name": "t13", + "type": { + "defined": "FieldElementZC" + } + }, + { + "name": "t15", + "type": { + "defined": "FieldElementZC" + } + } + ] + } + }, + { + "name": "BorshDecimal", + "type": { + "kind": "struct", + "fields": [ + { + "name": "mantissa", + "type": "i128" + }, + { + "name": "scale", + "type": "u32" + } + ] + } + }, + { + "name": "Quote", + "type": { + "kind": "struct", + "fields": [ + { + "name": "enclaveSigner", + "docs": [ + "The address of the signer generated within an enclave." + ], + "type": "publicKey" + }, + { + "name": "mrEnclave", + "docs": [ + "The quotes MRENCLAVE measurement dictating the contents of the secure enclave." + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "verificationStatus", + "docs": [ + "The VerificationStatus of the quote." + ], + "type": "u8" + }, + { + "name": "verificationTimestamp", + "docs": [ + "The unix timestamp when the quote was last verified." + ], + "type": "i64" + }, + { + "name": "validUntil", + "docs": [ + "The unix timestamp when the quotes verification status expires." + ], + "type": "i64" + }, + { + "name": "quoteRegistry", + "docs": [ + "The off-chain registry where the verifiers quote can be located." + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "registryKey", + "docs": [ + "Key to lookup the buffer data on IPFS or an alternative decentralized storage solution." + ], + "type": { + "array": [ + "u8", + 64 + ] + } + }, + { + "name": "ebuf", + "docs": [ + "Reserved." + ], + "type": { + "array": [ + "u8", + 256 + ] + } + } + ] + } + }, + { + "name": "VerifierAccountData", + "type": { + "kind": "struct", + "fields": [ + { + "name": "enclave", + "docs": [ + "Represents the state of the quote verifiers enclave." + ], + "type": { + "defined": "Quote" + } + }, + { + "name": "authority", + "docs": [ + "The authority of the EnclaveAccount which is permitted to make account changes." + ], + "type": "publicKey" + }, + { + "name": "attestationQueue", + "docs": [ + "Queue used for attestation to verify a MRENCLAVE measurement." + ], + "type": "publicKey" + }, + { + "name": "createdAt", + "docs": [ + "The unix timestamp when the quote was created." + ], + "type": "i64" + }, + { + "name": "isOnQueue", + "docs": [ + "Whether the quote is located on the AttestationQueues buffer." + ], + "type": "bool" + }, + { + "name": "lastHeartbeat", + "docs": [ + "The last time the quote heartbeated on-chain." + ], + "type": "i64" + }, + { + "name": "rewardEscrow", + "docs": [ + "The SwitchboardWallet account containing the reward escrow for verifying quotes on-chain.", + "We should set this whenever the operator changes so we dont need to pass another account and can verify with has_one." + ], + "type": "publicKey" + }, + { + "name": "stakeWallet", + "docs": [ + "The SwitchboardWallet account containing the queues required min_stake.", + "Needs to be separate from the reward_escrow. Allows easier 3rd party management of stake from rewards." + ], + "type": "publicKey" + }, + { + "name": "ebuf", + "docs": [ + "Reserved." + ], + "type": { + "array": [ + "u8", + 1024 + ] + } + } + ] + } + }, + { + "name": "Hash", + "type": { + "kind": "struct", + "fields": [ + { + "name": "data", + "docs": [ + "The bytes used to derive the hash." + ], + "type": { + "array": [ + "u8", + 32 + ] + } + } + ] + } + }, + { + "name": "SlidingWindowElement", + "type": { + "kind": "struct", + "fields": [ + { + "name": "oracleKey", + "type": "publicKey" + }, + { + "name": "value", + "type": { + "defined": "SwitchboardDecimal" + } + }, + { + "name": "slot", + "type": "u64" + }, + { + "name": "timestamp", + "type": "i64" + } + ] + } + }, + { + "name": "AggregatorRound", + "type": { + "kind": "struct", + "fields": [ + { + "name": "numSuccess", + "docs": [ + "Maintains the number of successful responses received from nodes.", + "Nodes can submit one successful response per round." + ], + "type": "u32" + }, + { + "name": "numError", + "docs": [ + "Number of error responses." + ], + "type": "u32" + }, + { + "name": "isClosed", + "docs": [ + "Whether an update request round has ended." + ], + "type": "bool" + }, + { + "name": "roundOpenSlot", + "docs": [ + "Maintains the `solana_program::clock::Slot` that the round was opened at." + ], + "type": "u64" + }, + { + "name": "roundOpenTimestamp", + "docs": [ + "Maintains the `solana_program::clock::UnixTimestamp;` the round was opened at." + ], + "type": "i64" + }, + { + "name": "result", + "docs": [ + "Maintains the current median of all successful round responses." + ], + "type": { + "defined": "SwitchboardDecimal" + } + }, + { + "name": "stdDeviation", + "docs": [ + "Standard deviation of the accepted results in the round." + ], + "type": { + "defined": "SwitchboardDecimal" + } + }, + { + "name": "minResponse", + "docs": [ + "Maintains the minimum node response this round." + ], + "type": { + "defined": "SwitchboardDecimal" + } + }, + { + "name": "maxResponse", + "docs": [ + "Maintains the maximum node response this round." + ], + "type": { + "defined": "SwitchboardDecimal" + } + }, + { + "name": "oraclePubkeysData", + "docs": [ + "Pubkeys of the oracles fulfilling this round." + ], + "type": { + "array": [ + "publicKey", + 16 + ] + } + }, + { + "name": "mediansData", + "docs": [ + "Represents all successful node responses this round. `NaN` if empty." + ], + "type": { + "array": [ + { + "defined": "SwitchboardDecimal" + }, + 16 + ] + } + }, + { + "name": "currentPayout", + "docs": [ + "Current rewards/slashes oracles have received this round." + ], + "type": { + "array": [ + "i64", + 16 + ] + } + }, + { + "name": "mediansFulfilled", + "docs": [ + "Keep track of which responses are fulfilled here." + ], + "type": { + "array": [ + "bool", + 16 + ] + } + }, + { + "name": "errorsFulfilled", + "docs": [ + "Keeps track of which errors are fulfilled here." + ], + "type": { + "array": [ + "bool", + 16 + ] + } + } + ] + } + }, + { + "name": "AggregatorHistoryRow", + "type": { + "kind": "struct", + "fields": [ + { + "name": "timestamp", + "docs": [ + "The timestamp of the sample." + ], + "type": "i64" + }, + { + "name": "value", + "docs": [ + "The value of the sample." + ], + "type": { + "defined": "SwitchboardDecimal" + } + } + ] + } + }, + { + "name": "SwitchboardDecimal", + "type": { + "kind": "struct", + "fields": [ + { + "name": "mantissa", + "docs": [ + "The part of a floating-point number that represents the significant digits of that number,", + "and that is multiplied by the base, 10, raised to the power of scale to give the actual value of the number." + ], + "type": "i128" + }, + { + "name": "scale", + "docs": [ + "The number of decimal places to move to the left to yield the actual value." + ], + "type": "u32" + } + ] + } + }, + { + "name": "CrankRow", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pubkey", + "docs": [ + "The PublicKey of the AggregatorAccountData." + ], + "type": "publicKey" + }, + { + "name": "nextTimestamp", + "docs": [ + "The aggregator's next available update time." + ], + "type": "i64" + } + ] + } + }, + { + "name": "OracleMetrics", + "type": { + "kind": "struct", + "fields": [ + { + "name": "consecutiveSuccess", + "docs": [ + "Number of consecutive successful update request." + ], + "type": "u64" + }, + { + "name": "consecutiveError", + "docs": [ + "Number of consecutive update request that resulted in an error." + ], + "type": "u64" + }, + { + "name": "consecutiveDisagreement", + "docs": [ + "Number of consecutive update request that resulted in a disagreement with the accepted median result." + ], + "type": "u64" + }, + { + "name": "consecutiveLateResponse", + "docs": [ + "Number of consecutive update request that were posted on-chain late and not included in an accepted result." + ], + "type": "u64" + }, + { + "name": "consecutiveFailure", + "docs": [ + "Number of consecutive update request that resulted in a failure." + ], + "type": "u64" + }, + { + "name": "totalSuccess", + "docs": [ + "Total number of successful update request." + ], + "type": "u128" + }, + { + "name": "totalError", + "docs": [ + "Total number of update request that resulted in an error." + ], + "type": "u128" + }, + { + "name": "totalDisagreement", + "docs": [ + "Total number of update request that resulted in a disagreement with the accepted median result." + ], + "type": "u128" + }, + { + "name": "totalLateResponse", + "docs": [ + "Total number of update request that were posted on-chain late and not included in an accepted result." + ], + "type": "u128" + } + ] + } + }, + { + "name": "VrfBuilder", + "type": { + "kind": "struct", + "fields": [ + { + "name": "producer", + "docs": [ + "The OracleAccountData that is producing the randomness." + ], + "type": "publicKey" + }, + { + "name": "status", + "docs": [ + "The current status of the VRF verification." + ], + "type": { + "defined": "VrfStatus" + } + }, + { + "name": "reprProof", + "docs": [ + "The VRF proof sourced from the producer." + ], + "type": { + "array": [ + "u8", + 80 + ] + } + }, + { + "name": "proof", + "type": { + "defined": "EcvrfProofZC" + } + }, + { + "name": "yPoint", + "type": "publicKey" + }, + { + "name": "stage", + "type": "u32" + }, + { + "name": "stage1Out", + "type": { + "defined": "EcvrfIntermediate" + } + }, + { + "name": "r1", + "type": { + "defined": "EdwardsPointZC" + } + }, + { + "name": "r2", + "type": { + "defined": "EdwardsPointZC" + } + }, + { + "name": "stage3Out", + "type": { + "defined": "EcvrfIntermediate" + } + }, + { + "name": "hPoint", + "type": { + "defined": "EdwardsPointZC" + } + }, + { + "name": "sReduced", + "type": { + "defined": "Scalar" + } + }, + { + "name": "yPointBuilder", + "type": { + "array": [ + { + "defined": "FieldElementZC" + }, + 3 + ] + } + }, + { + "name": "yRistrettoPoint", + "type": { + "defined": "EdwardsPointZC" + } + }, + { + "name": "mulRound", + "type": "u8" + }, + { + "name": "hashPointsRound", + "type": "u8" + }, + { + "name": "mulTmp1", + "type": { + "defined": "CompletedPointZC" + } + }, + { + "name": "uPoint1", + "type": { + "defined": "EdwardsPointZC" + } + }, + { + "name": "uPoint2", + "type": { + "defined": "EdwardsPointZC" + } + }, + { + "name": "vPoint1", + "type": { + "defined": "EdwardsPointZC" + } + }, + { + "name": "vPoint2", + "type": { + "defined": "EdwardsPointZC" + } + }, + { + "name": "uPoint", + "type": { + "defined": "EdwardsPointZC" + } + }, + { + "name": "vPoint", + "type": { + "defined": "EdwardsPointZC" + } + }, + { + "name": "u1", + "type": { + "defined": "FieldElementZC" + } + }, + { + "name": "u2", + "type": { + "defined": "FieldElementZC" + } + }, + { + "name": "invertee", + "type": { + "defined": "FieldElementZC" + } + }, + { + "name": "y", + "type": { + "defined": "FieldElementZC" + } + }, + { + "name": "z", + "type": { + "defined": "FieldElementZC" + } + }, + { + "name": "p1Bytes", + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "p2Bytes", + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "p3Bytes", + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "p4Bytes", + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "cPrimeHashbuf", + "type": { + "array": [ + "u8", + 16 + ] + } + }, + { + "name": "m1", + "type": { + "defined": "FieldElementZC" + } + }, + { + "name": "m2", + "type": { + "defined": "FieldElementZC" + } + }, + { + "name": "txRemaining", + "docs": [ + "The number of transactions remaining to verify the VRF proof." + ], + "type": "u32" + }, + { + "name": "verified", + "docs": [ + "Whether the VRF proof has been verified on-chain." + ], + "type": "bool" + }, + { + "name": "result", + "docs": [ + "The VRF proof verification result. Will be zeroized if still awaiting fulfillment." + ], + "type": { + "array": [ + "u8", + 32 + ] + } + } + ] + } + }, + { + "name": "AccountMetaZC", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pubkey", + "type": "publicKey" + }, + { + "name": "isSigner", + "type": "bool" + }, + { + "name": "isWritable", + "type": "bool" + } + ] + } + }, + { + "name": "AccountMetaBorsh", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pubkey", + "type": "publicKey" + }, + { + "name": "isSigner", + "type": "bool" + }, + { + "name": "isWritable", + "type": "bool" + } + ] + } + }, + { + "name": "CallbackZC", + "type": { + "kind": "struct", + "fields": [ + { + "name": "programId", + "docs": [ + "The program ID of the callback program being invoked." + ], + "type": "publicKey" + }, + { + "name": "accounts", + "docs": [ + "The accounts being used in the callback instruction." + ], + "type": { + "array": [ + { + "defined": "AccountMetaZC" + }, + 32 + ] + } + }, + { + "name": "accountsLen", + "docs": [ + "The number of accounts used in the callback" + ], + "type": "u32" + }, + { + "name": "ixData", + "docs": [ + "The serialized instruction data." + ], + "type": { + "array": [ + "u8", + 1024 + ] + } + }, + { + "name": "ixDataLen", + "docs": [ + "The number of serialized bytes in the instruction data." + ], + "type": "u32" + } + ] + } + }, + { + "name": "VrfRound", + "type": { + "kind": "struct", + "fields": [ + { + "name": "alpha", + "docs": [ + "The alpha bytes used to calculate the VRF proof." + ], + "type": { + "array": [ + "u8", + 256 + ] + } + }, + { + "name": "alphaLen", + "docs": [ + "The number of bytes in the alpha buffer." + ], + "type": "u32" + }, + { + "name": "requestSlot", + "docs": [ + "The Slot when the VRF round was opened." + ], + "type": "u64" + }, + { + "name": "requestTimestamp", + "docs": [ + "The unix timestamp when the VRF round was opened." + ], + "type": "i64" + }, + { + "name": "result", + "docs": [ + "The VRF round result. Will be zeroized if still awaiting fulfillment." + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "numVerified", + "docs": [ + "The number of builders who verified the VRF proof." + ], + "type": "u32" + }, + { + "name": "ebuf", + "docs": [ + "Reserved for future info." + ], + "type": { + "array": [ + "u8", + 256 + ] + } + } + ] + } + }, + { + "name": "VrfPoolRow", + "type": { + "kind": "struct", + "fields": [ + { + "name": "timestamp", + "type": "i64" + }, + { + "name": "pubkey", + "type": "publicKey" + } + ] + } + }, + { + "name": "BufferRelayerRound", + "type": { + "kind": "struct", + "fields": [ + { + "name": "numSuccess", + "docs": [ + "Number of successful responses." + ], + "type": "u32" + }, + { + "name": "numError", + "docs": [ + "Number of error responses." + ], + "type": "u32" + }, + { + "name": "roundOpenSlot", + "docs": [ + "Slot when the buffer relayer round was opened." + ], + "type": "u64" + }, + { + "name": "roundOpenTimestamp", + "docs": [ + "Timestamp when the buffer relayer round was opened." + ], + "type": "i64" + }, + { + "name": "oraclePubkey", + "docs": [ + "The public key of the oracle fulfilling the buffer relayer update request." + ], + "type": "publicKey" + } + ] + } + }, + { + "name": "Lanes", + "docs": [ + "The `Lanes` enum represents a subset of the lanes `A,B,C,D` of a", + "`FieldElement2625x4`.", + "", + "It's used to specify blend operations without", + "having to know details about the data layout of the", + "`FieldElement2625x4`." + ], + "type": { + "kind": "enum", + "variants": [ + { + "name": "C" + }, + { + "name": "D" + }, + { + "name": "AB" + }, + { + "name": "AC" + }, + { + "name": "CD" + }, + { + "name": "AD" + }, + { + "name": "BC" + }, + { + "name": "ABCD" + } + ] + } + }, + { + "name": "Shuffle", + "docs": [ + "The `Shuffle` enum represents a shuffle of a `FieldElement2625x4`.", + "", + "The enum variants are named by what they do to a vector \\\\(", + "(A,B,C,D) \\\\); for instance, `Shuffle::BADC` turns \\\\( (A, B, C,", + "D) \\\\) into \\\\( (B, A, D, C) \\\\)." + ], + "type": { + "kind": "enum", + "variants": [ + { + "name": "AAAA" + }, + { + "name": "BBBB" + }, + { + "name": "CACA" + }, + { + "name": "DBBD" + }, + { + "name": "ADDA" + }, + { + "name": "CBCB" + }, + { + "name": "ABAB" + }, + { + "name": "BADC" + }, + { + "name": "BACD" + }, + { + "name": "ABDC" + } + ] + } + }, + { + "name": "Shuffle", + "type": { + "kind": "enum", + "variants": [ + { + "name": "AAAA" + }, + { + "name": "BBBB" + }, + { + "name": "BADC" + }, + { + "name": "BACD" + }, + { + "name": "ADDA" + }, + { + "name": "CBCB" + }, + { + "name": "ABDC" + }, + { + "name": "ABAB" + }, + { + "name": "DBBD" + }, + { + "name": "CACA" + } + ] + } + }, + { + "name": "Lanes", + "type": { + "kind": "enum", + "variants": [ + { + "name": "D" + }, + { + "name": "C" + }, + { + "name": "AB" + }, + { + "name": "AC" + }, + { + "name": "AD" + }, + { + "name": "BCD" + } + ] + } + }, + { + "name": "Error", + "type": { + "kind": "enum", + "variants": [ + { + "name": "InvalidPublicKey" + }, + { + "name": "SerializationError" + }, + { + "name": "DeserializationError" + }, + { + "name": "InvalidDataError" + } + ] + } + }, + { + "name": "VerificationStatus", + "type": { + "kind": "enum", + "variants": [ + { + "name": "None" + }, + { + "name": "VerificationPending" + }, + { + "name": "VerificationFailure" + }, + { + "name": "VerificationSuccess" + }, + { + "name": "VerificationOverride" + } + ] + } + }, + { + "name": "AggregatorResolutionMode", + "type": { + "kind": "enum", + "variants": [ + { + "name": "ModeRoundResolution" + }, + { + "name": "ModeSlidingResolution" + } + ] + } + }, + { + "name": "SwitchboardPermission", + "type": { + "kind": "enum", + "variants": [ + { + "name": "PermitOracleHeartbeat" + }, + { + "name": "PermitOracleQueueUsage" + }, + { + "name": "PermitVrfRequests" + } + ] + } + }, + { + "name": "OracleResponseType", + "type": { + "kind": "enum", + "variants": [ + { + "name": "TypeSuccess" + }, + { + "name": "TypeError" + }, + { + "name": "TypeDisagreement" + }, + { + "name": "TypeNoResponse" + } + ] + } + }, + { + "name": "VrfStatus", + "type": { + "kind": "enum", + "variants": [ + { + "name": "StatusNone" + }, + { + "name": "StatusRequesting" + }, + { + "name": "StatusVerifying" + }, + { + "name": "StatusVerified" + }, + { + "name": "StatusCallbackSuccess" + }, + { + "name": "StatusVerifyFailure" + } + ] + } + } + ], + "events": [ + { + "name": "VrfRequestRandomnessEvent", + "fields": [ + { + "name": "vrfPubkey", + "type": "publicKey", + "index": true + }, + { + "name": "oraclePubkeys", + "type": { + "vec": "publicKey" + }, + "index": false + }, + { + "name": "loadAmount", + "type": "u64", + "index": false + }, + { + "name": "existingAmount", + "type": "u64", + "index": false + }, + { + "name": "alpha", + "type": "bytes", + "index": false + }, + { + "name": "counter", + "type": "u128", + "index": false + } + ] + }, + { + "name": "VrfRequestEvent", + "fields": [ + { + "name": "vrfPubkey", + "type": "publicKey", + "index": true + }, + { + "name": "oraclePubkeys", + "type": { + "vec": "publicKey" + }, + "index": false + } + ] + }, + { + "name": "VrfProveEvent", + "fields": [ + { + "name": "vrfPubkey", + "type": "publicKey", + "index": true + }, + { + "name": "oraclePubkey", + "type": "publicKey", + "index": true + }, + { + "name": "authorityPubkey", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "VrfVerifyEvent", + "fields": [ + { + "name": "vrfPubkey", + "type": "publicKey", + "index": true + }, + { + "name": "oraclePubkey", + "type": "publicKey", + "index": true + }, + { + "name": "authorityPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "amount", + "type": "u64", + "index": false + } + ] + }, + { + "name": "VrfCallbackPerformedEvent", + "fields": [ + { + "name": "vrfPubkey", + "type": "publicKey", + "index": true + }, + { + "name": "oraclePubkey", + "type": "publicKey", + "index": true + }, + { + "name": "amount", + "type": "u64", + "index": false + } + ] + }, + { + "name": "AggregatorOpenRoundEvent", + "fields": [ + { + "name": "feedPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "oraclePubkeys", + "type": { + "vec": "publicKey" + }, + "index": false + }, + { + "name": "jobPubkeys", + "type": { + "vec": "publicKey" + }, + "index": false + }, + { + "name": "remainingFunds", + "type": "u64", + "index": false + }, + { + "name": "queueAuthority", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "AggregatorSaveResultEvent", + "fields": [ + { + "name": "feedPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "value", + "type": { + "defined": "BorshDecimal" + }, + "index": false + }, + { + "name": "slot", + "type": "u64", + "index": false + }, + { + "name": "timestamp", + "type": "i64", + "index": false + }, + { + "name": "oraclePubkey", + "type": "publicKey", + "index": false + }, + { + "name": "jobValues", + "type": { + "vec": { + "option": { + "defined": "BorshDecimal" + } + } + }, + "index": false + } + ] + }, + { + "name": "AggregatorTeeSaveResultEvent", + "fields": [ + { + "name": "feedPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "value", + "type": { + "defined": "BorshDecimal" + }, + "index": false + }, + { + "name": "slot", + "type": "u64", + "index": false + }, + { + "name": "timestamp", + "type": "i64", + "index": false + }, + { + "name": "oraclePubkey", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "AggregatorValueUpdateEvent", + "fields": [ + { + "name": "feedPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "value", + "type": { + "defined": "BorshDecimal" + }, + "index": false + }, + { + "name": "slot", + "type": "u64", + "index": false + }, + { + "name": "timestamp", + "type": "i64", + "index": false + }, + { + "name": "oraclePubkeys", + "type": { + "vec": "publicKey" + }, + "index": false + }, + { + "name": "oracleValues", + "type": { + "vec": { + "defined": "BorshDecimal" + } + }, + "index": false + } + ] + }, + { + "name": "OracleRewardEvent", + "fields": [ + { + "name": "feedPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "leasePubkey", + "type": "publicKey", + "index": false + }, + { + "name": "oraclePubkey", + "type": "publicKey", + "index": false + }, + { + "name": "walletPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "amount", + "type": "u64", + "index": false + }, + { + "name": "roundSlot", + "type": "u64", + "index": false + }, + { + "name": "timestamp", + "type": "i64", + "index": false + } + ] + }, + { + "name": "OracleWithdrawEvent", + "fields": [ + { + "name": "oraclePubkey", + "type": "publicKey", + "index": false + }, + { + "name": "walletPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "destinationWallet", + "type": "publicKey", + "index": false + }, + { + "name": "previousAmount", + "type": "u64", + "index": false + }, + { + "name": "newAmount", + "type": "u64", + "index": false + }, + { + "name": "timestamp", + "type": "i64", + "index": false + } + ] + }, + { + "name": "LeaseWithdrawEvent", + "fields": [ + { + "name": "leasePubkey", + "type": "publicKey", + "index": false + }, + { + "name": "walletPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "previousAmount", + "type": "u64", + "index": false + }, + { + "name": "newAmount", + "type": "u64", + "index": false + }, + { + "name": "timestamp", + "type": "i64", + "index": false + } + ] + }, + { + "name": "OracleSlashEvent", + "fields": [ + { + "name": "feedPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "leasePubkey", + "type": "publicKey", + "index": false + }, + { + "name": "oraclePubkey", + "type": "publicKey", + "index": false + }, + { + "name": "walletPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "amount", + "type": "u64", + "index": false + }, + { + "name": "roundSlot", + "type": "u64", + "index": false + }, + { + "name": "timestamp", + "type": "i64", + "index": false + } + ] + }, + { + "name": "LeaseFundEvent", + "fields": [ + { + "name": "leasePubkey", + "type": "publicKey", + "index": false + }, + { + "name": "funder", + "type": "publicKey", + "index": false + }, + { + "name": "amount", + "type": "u64", + "index": false + }, + { + "name": "timestamp", + "type": "i64", + "index": false + } + ] + }, + { + "name": "ProbationBrokenEvent", + "fields": [ + { + "name": "feedPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "queuePubkey", + "type": "publicKey", + "index": false + }, + { + "name": "timestamp", + "type": "i64", + "index": false + } + ] + }, + { + "name": "FeedPermissionRevokedEvent", + "fields": [ + { + "name": "feedPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "timestamp", + "type": "i64", + "index": false + } + ] + }, + { + "name": "GarbageCollectFailureEvent", + "fields": [ + { + "name": "queuePubkey", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "OracleBootedEvent", + "fields": [ + { + "name": "queuePubkey", + "type": "publicKey", + "index": false + }, + { + "name": "oraclePubkey", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "AggregatorCrankEvictionEvent", + "fields": [ + { + "name": "crankPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "aggregatorPubkey", + "type": "publicKey", + "index": true + }, + { + "name": "reason", + "type": { + "option": "u32" + }, + "index": false + }, + { + "name": "timestamp", + "type": "i64", + "index": false + } + ] + }, + { + "name": "CrankLeaseInsufficientFundsEvent", + "fields": [ + { + "name": "feedPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "leasePubkey", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "CrankPopExpectedFailureEvent", + "fields": [ + { + "name": "feedPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "leasePubkey", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "BufferRelayerOpenRoundEvent", + "fields": [ + { + "name": "relayerPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "jobPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "oraclePubkeys", + "type": { + "vec": "publicKey" + }, + "index": false + }, + { + "name": "remainingFunds", + "type": "u64", + "index": false + }, + { + "name": "queue", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "PriorityFeeReimburseEvent", + "fields": [ + { + "name": "feedPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "slot", + "type": "u64", + "index": false + }, + { + "name": "timestamp", + "type": "i64", + "index": false + }, + { + "name": "fee", + "type": "u64", + "index": false + } + ] + }, + { + "name": "AggregatorAddJobEvent", + "fields": [ + { + "name": "feedPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "jobPubkey", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "AggregatorRemoveJobEvent", + "fields": [ + { + "name": "feedPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "jobPubkey", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "AggregatorLockEvent", + "fields": [ + { + "name": "feedPubkey", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "AggregatorInitEvent", + "fields": [ + { + "name": "feedPubkey", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "AggregatorSetAuthorityEvent", + "fields": [ + { + "name": "feedPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "oldAuthority", + "type": "publicKey", + "index": false + }, + { + "name": "newAuthority", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "AggregatorSetConfigsEvent", + "fields": [ + { + "name": "feedPubkey", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "PermissionSetEvent", + "fields": [ + { + "name": "permissionKey", + "type": "publicKey", + "index": false + }, + { + "name": "permission", + "type": { + "defined": "SwitchboardPermission" + }, + "index": false + }, + { + "name": "enable", + "type": "bool", + "index": false + } + ] + }, + { + "name": "VrfPoolUpdateEvent", + "fields": [ + { + "name": "queuePubkey", + "type": "publicKey", + "index": false + }, + { + "name": "vrfPoolPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "vrfPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "newSize", + "type": "u32", + "index": false + }, + { + "name": "minInterval", + "type": "u32", + "index": false + } + ] + }, + { + "name": "VrfPoolRequestEvent", + "fields": [ + { + "name": "queuePubkey", + "type": "publicKey", + "index": false + }, + { + "name": "vrfPoolPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "vrfPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "oraclePubkey", + "type": "publicKey", + "index": false + }, + { + "name": "slot", + "type": "u64", + "index": false + }, + { + "name": "timestamp", + "type": "i64", + "index": false + } + ] + }, + { + "name": "QuoteVerifyRequestEvent", + "fields": [ + { + "name": "quotePubkey", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "AggregatorFunctionUpsertEvent", + "fields": [ + { + "name": "feedPubkey", + "type": "publicKey", + "index": false + }, + { + "name": "value", + "type": { + "defined": "BorshDecimal" + }, + "index": false + }, + { + "name": "timestamp", + "type": "i64", + "index": false + } + ] + } + ], + "errors": [ + { + "code": 6000, + "name": "ArrayOperationError", + "msg": "Illegal operation on a Switchboard array." + }, + { + "code": 6001, + "name": "QueueOperationError", + "msg": "Illegal operation on a Switchboard queue." + }, + { + "code": 6002, + "name": "IncorrectProgramOwnerError", + "msg": "An account required to be owned by the program has a different owner." + }, + { + "code": 6003, + "name": "InvalidAggregatorRound", + "msg": "Aggregator is not currently populated with a valid round." + }, + { + "code": 6004, + "name": "TooManyAggregatorJobs", + "msg": "Aggregator cannot fit any more jobs." + }, + { + "code": 6005, + "name": "AggregatorCurrentRoundClosed", + "msg": "Aggregator's current round is closed. No results are being accepted." + }, + { + "code": 6006, + "name": "AggregatorInvalidSaveResult", + "msg": "Aggregator received an invalid save result instruction." + }, + { + "code": 6007, + "name": "InvalidStrDecimalConversion", + "msg": "Failed to convert string to decimal format." + }, + { + "code": 6008, + "name": "AccountLoaderMissingSignature", + "msg": "AccountLoader account is missing a required signature." + }, + { + "code": 6009, + "name": "MissingRequiredSignature", + "msg": "Account is missing a required signature." + }, + { + "code": 6010, + "name": "ArrayOverflowError", + "msg": "The attempted action will overflow a zero-copy account array." + }, + { + "code": 6011, + "name": "ArrayUnderflowError", + "msg": "The attempted action will underflow a zero-copy account array." + }, + { + "code": 6012, + "name": "PubkeyNotFoundError", + "msg": "The queried public key was not found." + }, + { + "code": 6013, + "name": "AggregatorIllegalRoundOpenCall", + "msg": "Aggregator round open called too early." + }, + { + "code": 6014, + "name": "AggregatorIllegalRoundCloseCall", + "msg": "Aggregator round close called too early." + }, + { + "code": 6015, + "name": "AggregatorClosedError", + "msg": "Aggregator is closed. Illegal action." + }, + { + "code": 6016, + "name": "IllegalOracleIdxError", + "msg": "Illegal oracle index." + }, + { + "code": 6017, + "name": "OracleAlreadyRespondedError", + "msg": "The provided oracle has already responded this round." + }, + { + "code": 6018, + "name": "ProtoDeserializeError", + "msg": "Failed to deserialize protocol buffer." + }, + { + "code": 6019, + "name": "UnauthorizedStateUpdateError", + "msg": "Unauthorized program state modification attempted." + }, + { + "code": 6020, + "name": "MissingOracleAccountsError", + "msg": "Not enough oracle accounts provided to closeRounds." + }, + { + "code": 6021, + "name": "OracleMismatchError", + "msg": "An unexpected oracle account was provided for the transaction." + }, + { + "code": 6022, + "name": "CrankMaxCapacityError", + "msg": "Attempted to push to a Crank that's at capacity" + }, + { + "code": 6023, + "name": "AggregatorLeaseInsufficientFunds", + "msg": "Aggregator update call attempted but attached lease has insufficient funds." + }, + { + "code": 6024, + "name": "IncorrectTokenAccountMint", + "msg": "The provided token account does not point to the Switchboard token mint." + }, + { + "code": 6025, + "name": "InvalidEscrowAccount", + "msg": "An invalid escrow account was provided." + }, + { + "code": 6026, + "name": "CrankEmptyError", + "msg": "Crank empty. Pop failed." + }, + { + "code": 6027, + "name": "PdaDeriveError", + "msg": "Failed to derive a PDA from the provided seed." + }, + { + "code": 6028, + "name": "AggregatorAccountNotFound", + "msg": "Aggregator account missing from provided account list." + }, + { + "code": 6029, + "name": "PermissionAccountNotFound", + "msg": "Permission account missing from provided account list." + }, + { + "code": 6030, + "name": "LeaseAccountDeriveFailure", + "msg": "Failed to derive a lease account." + }, + { + "code": 6031, + "name": "PermissionAccountDeriveFailure", + "msg": "Failed to derive a permission account." + }, + { + "code": 6032, + "name": "EscrowAccountNotFound", + "msg": "Escrow account missing from provided account list." + }, + { + "code": 6033, + "name": "LeaseAccountNotFound", + "msg": "Lease account missing from provided account list." + }, + { + "code": 6034, + "name": "DecimalConversionError", + "msg": "Decimal conversion method failed." + }, + { + "code": 6035, + "name": "PermissionDenied", + "msg": "Permission account is missing required flags for the given action." + }, + { + "code": 6036, + "name": "QueueAtCapacity", + "msg": "Oracle queue is at lease capacity." + }, + { + "code": 6037, + "name": "ExcessiveCrankRowsError", + "msg": "Data feed is already pushed on a crank." + }, + { + "code": 6038, + "name": "AggregatorLockedError", + "msg": "Aggregator is locked, no setting modifications or job additions allowed." + }, + { + "code": 6039, + "name": "AggregatorInvalidBatchSizeError", + "msg": "Aggregator invalid batch size." + }, + { + "code": 6040, + "name": "AggregatorJobChecksumMismatch", + "msg": "Oracle provided an incorrect aggregator job checksum." + }, + { + "code": 6041, + "name": "IntegerOverflowError", + "msg": "An integer overflow occurred." + }, + { + "code": 6042, + "name": "InvalidUpdatePeriodError", + "msg": "Minimum update period is 5 seconds." + }, + { + "code": 6043, + "name": "NoResultsError", + "msg": "Aggregator round evaluation attempted with no results." + }, + { + "code": 6044, + "name": "InvalidExpirationError", + "msg": "An expiration constraint was broken." + }, + { + "code": 6045, + "name": "InsufficientStakeError", + "msg": "An account provided insufficient stake for action." + }, + { + "code": 6046, + "name": "LeaseInactiveError", + "msg": "The provided lease account is not active." + }, + { + "code": 6047, + "name": "NoAggregatorJobsFound", + "msg": "No jobs are currently included in the aggregator." + }, + { + "code": 6048, + "name": "IntegerUnderflowError", + "msg": "An integer underflow occurred." + }, + { + "code": 6049, + "name": "OracleQueueMismatch", + "msg": "An invalid oracle queue account was provided." + }, + { + "code": 6050, + "name": "OracleWalletMismatchError", + "msg": "An unexpected oracle wallet account was provided for the transaction." + }, + { + "code": 6051, + "name": "InvalidBufferAccountError", + "msg": "An invalid buffer account was provided." + }, + { + "code": 6052, + "name": "InsufficientOracleQueueError", + "msg": "Insufficient oracle queue size." + }, + { + "code": 6053, + "name": "InvalidAuthorityError", + "msg": "Invalid authority account provided." + }, + { + "code": 6054, + "name": "InvalidTokenAccountMintError", + "msg": "A provided token wallet is associated with an incorrect mint." + }, + { + "code": 6055, + "name": "ExcessiveLeaseWithdrawlError", + "msg": "You must leave enough funds to perform at least 1 update in the lease." + }, + { + "code": 6056, + "name": "InvalideHistoryAccountError", + "msg": "Invalid history account provided." + }, + { + "code": 6057, + "name": "InvalidLeaseAccountEscrowError", + "msg": "Invalid lease account escrow." + }, + { + "code": 6058, + "name": "InvalidCrankAccountError", + "msg": "Invalid crank provided." + }, + { + "code": 6059, + "name": "CrankNoElementsReadyError", + "msg": "No elements ready to be popped." + }, + { + "code": 6060, + "name": "IndexOutOfBoundsError", + "msg": "Index out of bounds" + }, + { + "code": 6061, + "name": "VrfInvalidRequestError", + "msg": "Invalid vrf request params" + }, + { + "code": 6062, + "name": "VrfInvalidProofSubmissionError", + "msg": "Vrf proof failed to verify" + }, + { + "code": 6063, + "name": "VrfVerifyError", + "msg": "Error in verifying vrf proof." + }, + { + "code": 6064, + "name": "VrfCallbackError", + "msg": "Vrf callback function failed." + }, + { + "code": 6065, + "name": "VrfCallbackParamsError", + "msg": "Invalid vrf callback params provided." + }, + { + "code": 6066, + "name": "VrfCallbackAlreadyCalledError", + "msg": "Vrf callback has already been triggered." + }, + { + "code": 6067, + "name": "VrfInvalidPubkeyError", + "msg": "The provided pubkey is invalid to use in ecvrf proofs" + }, + { + "code": 6068, + "name": "VrfTooManyVerifyCallsError", + "msg": "Number of required verify calls exceeded" + }, + { + "code": 6069, + "name": "VrfRequestAlreadyLaunchedError", + "msg": "Vrf request is already pending" + }, + { + "code": 6070, + "name": "VrfInsufficientVerificationError", + "msg": "Insufficient amount of proofs collected for VRF callback" + }, + { + "code": 6071, + "name": "InvalidVrfProducerError", + "msg": "An incorrect oracle attempted to submit a proof" + }, + { + "code": 6072, + "name": "InvalidGovernancePidError", + "msg": "Invalid SPLGovernance Account Supplied" + }, + { + "code": 6073, + "name": "InvalidGovernanceAccountError", + "msg": "An Invalid Governance Account was supplied" + }, + { + "code": 6074, + "name": "MissingOptionalAccount", + "msg": "Expected an optional account" + }, + { + "code": 6075, + "name": "InvalidSpawnRecordOwner", + "msg": "Invalid Owner for Spawn Record" + }, + { + "code": 6076, + "name": "NoopError", + "msg": "Noop error" + }, + { + "code": 6077, + "name": "MissingRequiredAccountsError", + "msg": "A required instruction account was not included" + }, + { + "code": 6078, + "name": "InvalidMintError", + "msg": "Invalid mint account passed for instruction" + }, + { + "code": 6079, + "name": "InvalidTokenAccountKeyError", + "msg": "An invalid token account was passed into the instruction" + }, + { + "code": 6080, + "name": "InvalidJobAccountError", + "msg": "" + }, + { + "code": 6081, + "name": "VoterStakeRegistryError", + "msg": "" + }, + { + "code": 6082, + "name": "AccountDiscriminatorMismatch", + "msg": "Account discriminator did not match." + }, + { + "code": 6083, + "name": "FuckingImpossibleError", + "msg": "This error is fucking impossible." + }, + { + "code": 6084, + "name": "InvalidVrfRound", + "msg": "Responding to the wrong VRF round" + }, + { + "code": 6085, + "name": "JobSizeExceeded", + "msg": "Job size has exceeded the max of 6400 bytes" + }, + { + "code": 6086, + "name": "JobChunksExceeded", + "msg": "Job loading can only support a maximum of 8 chunks" + }, + { + "code": 6087, + "name": "JobDataLocked", + "msg": "Job has finished initializing and is immutable" + }, + { + "code": 6088, + "name": "JobNotInitialized", + "msg": "Job account has not finished initializing" + }, + { + "code": 6089, + "name": "BufferRelayerIllegalRoundOpenCall", + "msg": "BufferRelayer round open called too early." + }, + { + "code": 6090, + "name": "InvalidSliderAccount", + "msg": "Invalid slider account." + }, + { + "code": 6091, + "name": "VrfLiteHasExistingPool", + "msg": "VRF lite account belongs to an existing pool." + }, + { + "code": 6092, + "name": "VrfPoolFull", + "msg": "VRF pool is at max capacity." + }, + { + "code": 6093, + "name": "VrfPoolEmpty", + "msg": "VRF pool is empty." + }, + { + "code": 6094, + "name": "VrfAccountNotFound", + "msg": "Failed to find VRF account in remaining accounts array." + }, + { + "code": 6095, + "name": "AccountCloseNotReady", + "msg": "Account is not ready to be closed." + }, + { + "code": 6096, + "name": "VrfPoolRequestTooSoon", + "msg": "VRF requested too soon." + }, + { + "code": 6097, + "name": "VrfPoolMiss", + "msg": "VRF pool miss." + }, + { + "code": 6098, + "name": "VrfLiteOwnedByPool", + "msg": "VRF lite belongs to a pool." + }, + { + "code": 6099, + "name": "InsufficientTokenBalance", + "msg": "Escrow has insufficient funds to perform this action." + }, + { + "code": 6100, + "name": "InvalidQuoteError", + "msg": "Invalid SAS quote account" + }, + { + "code": 6101, + "name": "InvalidHistoryAccountError", + "msg": "" + }, + { + "code": 6102, + "name": "GenericError", + "msg": "" + }, + { + "code": 6103, + "name": "InvalidAuthorityState", + "msg": "" + } + ] +} \ No newline at end of file diff --git a/sdk/src/oracles/switchboardClient.ts b/sdk/src/oracles/switchboardClient.ts new file mode 100644 index 000000000..b567310af --- /dev/null +++ b/sdk/src/oracles/switchboardClient.ts @@ -0,0 +1,74 @@ +import { Connection, PublicKey } from '@solana/web3.js'; +import { PRICE_PRECISION, TEN } from '../constants/numericConstants'; +import { OracleClient, OraclePriceData } from './types'; +import switchboardV2Idl from '../idl/switchboard.json'; +import { BorshAccountsCoder, BN, Idl } from '@coral-xyz/anchor'; + +type SwitchboardDecimal = { + scale: number; + mantissa: BN; +}; + +type AggregatorAccountData = { + latestConfirmedRound: { + result: SwitchboardDecimal; + stdDeviation: SwitchboardDecimal; + numSuccess: number; + roundOpenSlot: BN; + }; + minOracleResults: number; +}; + +export class SwitchboardClient implements OracleClient { + connection: Connection; + coder: BorshAccountsCoder; + + public constructor(connection: Connection) { + this.connection = connection; + this.coder = new BorshAccountsCoder(switchboardV2Idl as Idl); + } + + public async getOraclePriceData( + pricePublicKey: PublicKey + ): Promise { + const accountInfo = await this.connection.getAccountInfo(pricePublicKey); + return this.getOraclePriceDataFromBuffer(accountInfo.data); + } + + public getOraclePriceDataFromBuffer(buffer: Buffer): OraclePriceData { + const aggregatorAccountData = this.coder.decodeUnchecked( + 'AggregatorAccountData', + buffer + ) as AggregatorAccountData; + + const price = convertSwitchboardDecimal( + aggregatorAccountData.latestConfirmedRound.result + ); + + const confidence = convertSwitchboardDecimal( + aggregatorAccountData.latestConfirmedRound.stdDeviation + ); + + const hasSufficientNumberOfDataPoints = + aggregatorAccountData.latestConfirmedRound.numSuccess >= + aggregatorAccountData.minOracleResults; + + const slot: BN = aggregatorAccountData.latestConfirmedRound.roundOpenSlot; + return { + price, + slot, + confidence, + hasSufficientNumberOfDataPoints, + }; + } +} + +function convertSwitchboardDecimal(switchboardDecimal: { + scale: number; + mantissa: BN; +}): BN { + const switchboardPrecision = TEN.pow(new BN(switchboardDecimal.scale)); + return switchboardDecimal.mantissa + .mul(PRICE_PRECISION) + .div(switchboardPrecision); +} diff --git a/sdk/src/types.ts b/sdk/src/types.ts index 20cd48a35..dabe93967 100644 --- a/sdk/src/types.ts +++ b/sdk/src/types.ts @@ -93,7 +93,7 @@ export class OracleSource { static readonly PYTH = { pyth: {} }; static readonly PYTH_1K = { pyth1K: {} }; static readonly PYTH_1M = { pyth1M: {} }; - // static readonly SWITCHBOARD = { switchboard: {} }; + static readonly SWITCHBOARD = { switchboard: {} }; static readonly QUOTE_ASSET = { quoteAsset: {} }; static readonly PYTH_STABLE_COIN = { pythStableCoin: {} }; }